reverting the fixing behaviour.

two reasons: 1) the new behaviour is confusing for new users. Either
something is fixed, or it's not. 2) the fixing didn't work! things that
should have been fixed were passed to the optimizer for optimization.

If we really want to save keystrokes, consider this:

m.foo.fix()
m.foo.unfix()
m.foo.constrain_positive()

is the same as

m.foo.fix()
m.foo.constrain_positive()

but the latter throws a warning.
merging