Removed the constraintsdef dict and instead has each Fitter subclass manually specify what constraints they support as a class attribute supported_constraints. If in the future we do need a registry of which fitters support which constraints we can do that through a metaclass, but I didn't notice any current use case for that.
Made some more simplifications in the fitting code by also keeping around an array called self._param_indices, which are the indices into the self.model.parameters array of the parameter values being fitted (in particular excluding fixed and tied parameters).  The values of tied parameters are updated manually. This fixed a couple bugs, particularly that came up in the LinearLSQFitter and should fix #1624.
Trivial whitespace change
linear should be a class attribute; not generally an instance attribute unless the model's linearity somehow depends on its parameters (are there even any examples like that?)
Numerous documentation updates.  I just made these changes as I read through the docs so there are a number of changes glommed together.  Much of the changes are just for formatting consistency.  A few changes are to the examples so that the work with the API updates.  I didn't significantly change the substance of most of the examples.  I also updated some of the prose to more accurately reflect the API changes, as well as the examples for implementing models and fitters.
Merge branch 'parameter-property' of github.com:embray/astropy into parameter-property

Conflicts:
	docs/modeling/fitting.rst
	docs/modeling/index.rst
	docs/modeling/models.rst
	docs/modeling/parameters.rst
Several more minor documentation tweaks I found while going through the docs