Fix the param_sets property to work somewhat consistently within the new system.  I'm not sure how much longer I want to keep this property around in its present form at all, but for now I tried to manimize the changes necessary to any other code or tests.  One thing that is slightly different now is that *previously* the last axis of the param_sets array was always the same size as the number of param sets (that is, the last axis was the param set axis).  Now that is no longer guaranteed--instead it corresponds to whatever axis was specified by model_set_axis.  We could roll that axis to the end, but for now I prefer preserving the contiguity of each parameter array).
Re-introduced an n_models argument analogous to the old param_dim argument (with backwards compatibility support for param_dim).  This was necessary in cases where no initial values are provided for any parameters (all parameters have default values), and is also simply clearer in other cases.  The model_set_axis argument is still needed in addition to this to meet all use cases.  However, when n_models > 1, model_set_axis defaults to zero unless otherwise specified.  Setting model_set_axis=False disables it entirely.
WIP: A lot of work to make sure that array-valued parameters (with or without multiple parameter sets) can broadcast with each other in a logical way).