Do not overwrite read-only values!

This may be a security hole, but the more immediate effect of this problem
is that it's not possible to have a fieldset which selectively displays
some fields as read-only -- on submission, the missing values will be
erased from the model. Ouch.
Merge branch 'readonly'