[x] Change parameters_number to n_parameters throughout
[x] Remove distributions from the InferenceModel parent class because it is not common to all children. Move others that are not common as well.
[x] Change optimizations_number to n_optimizations and correct the documentation for it in MLE
[x] Change initial_guess to init_params in MLE
[x] In BayesParameterEstimation, clarify what is happening with nsamples and samples_per_chain, also as it relates to what is being passed into the MCMC object directly. Make sure it's consistent with MCMC
[x] In BayesParameterEstimation, specify when run() will be called automatically.
[x] In BayesParameterEstimation, show an example of how the MCMC algorithm is created for this.
[x] Review how samplers are initialized throughout. Do not want a special initializer (i.e. create_for_inference) method.
[x] Create abstract class for InformationTheoreticCriterion and pass this class into InformationModelSelection
[x] Discuss how to pass MLE into InformationModelSelection. Try to avoid passing the MLE parameters through the IMS class input.
[x] Specify when run() is automatically called in InformationModelSelection - This should be triggered by whether data are provided at initialization. If they are not, they should be provided to the run() method. MLE should do the same thing.
[x] Rethink the input structure of BayesModelSelection in the same ways as above.