Refactor of main.py and the plotting
This issue requires careful review as it is a major refactor of existing code.
It greatly simplifies the "main.py" (in part by moving the CompartmentSelector
class to a separate file called "bokeh_models.py"). It also adds a new Model
class in "bokeh_models.py" which encapsulates the multiple compartments, the acquisition parameters, and (in the future) the fODF.
The plotting has been redesigned to have the plot functions expect an instance of the Model
class and return a Bokeh object containing the plot (and perhaps a few plot-specific sliders as well). These plot functions also should register any callback functions that should be called when the model is updated. This is described in more detail in the documentation at the top of the "plotting.py" file.
This was originally designed to address #52 (closed), but it has gone beyond that scope...