The grid search backend now calls the new grid_bounds() function. This takes the lower and upper
bounds as arguments, uses the specific API to determine the per-model parameter grid search bounds,
and then returns a per model list of lower and upper bounds. The specific API get_param_names() and
get_param_values() are called to obtain the current model parameter names and values, and then the
parameter names and model info are used in the new parameter object grid_lower() and grid_upper()
methods to obtain the bounds. This shifts all of the grid search bounds logic out of the specific
analyses and into the grid search backend, so it should allow the specific analysis code to be
simplified.