This required a bit of work. The key parts weres renaming _block_loop() to the API method
model_loop() as that is exactly what the model_loop() method is supposed to do, converting a bunch
of API common spin-based methods to handle dispersion clustering, and to modify existing methods
from Seb's original branch to handle the base_data_loop() method. The following methods have been
added or modified:
_back_calc(): This method has been modified to handle clustering and the returning of peak intensities
from only one exponential curve.
_exp_curve_index_from_key(): This new method is used to convert exponential curve key into the
corresponding index.
_intensity_key(): This new method is for converting an exponential curve key and relaxation time
into the corresponding intensity key.
create_mc_data(): This method is now functional and handles the data from the base_data_loop() method.
return_error(): This method now handles the data from the base_data_loop() method.
set_selected_sim(): This new method has been modified from the common _set_selected_sim_spin()
method but modified for the model_loop() method.
sim_pack_data(): This method now handles the data from the base_data_loop() method.
sim_return_param(): This new method has been modified from the common _sim_return_param_spin()
method to suit the model_loop().
sim_return_selected(): This new method has been modified from the common
_sim_return_selected_spin() method again to suit the model_loop().