Fixes #2396, ensuring that parameter default constraints trickle down to
model instances.

How this works is that unbound parameters are responsible for handling
default values and contraints, while *bound* parameters get their values
and constraints through the model they're bound to, but are also
responsible for setting the default values on the model instances.  So
the code is admittedly confusing.  I'll have to see if I can rethink
that a bit.  As it is this remains a straightforward way to synchronize
the model with its bound parameters.
Merge pull request #2396 from embray/issue-2396

Fix for Parametric?DModel not getting the parameters attributes right