Add tests that fail with mutable types
Handle saving of mutable fields correctly.

Add `MUTABLE` flag to `ModelType`s so we know what is and isn't mutable.
Default behavior is Mutable.