PolyND -> PolynomialND just for the sake of consistency (none of the other classes abbreviate 'Polynomial')
Cleanup whitespace usage in this module.  Rename it to to example_models, as model_lists was no longer terribly accurate--especially since there are no actual lists of models in it (model_dicts might have worked but I think example_models is more clear as to what it is.
Replace the `_convert_input` and `_convert_output` functions that had to
be used in every `__call__` with a simple decorator that performs the
same function for n-dimensional models.

I'm still not crazy about the name `format_input`--it's a little vague,
for one, and it also affects how the output is formatted.  Still, I
think this simplifies the code a bit.
This I think further simplifies model classes by, in most cases, making n_inputs and n_outputs class attributes.  In most cases the number of inputs/outputs is a property of the model class itself, and not of individual model instances.  So it makes sense that they should be class attributes.  There are a few exceptions currently, such as for PolynomialModel.  But that might change as well since I don't think the PolynomialModel class is meant to be used directly.