Failing tests showing mutation of model state
Do not mutate model values using key with typecast

When setting an array key with the typecast option, the array members is currently
typecasted using `Array#map!`. Since `Key#set` can be called with a models ivar as
argument this will mutate the outer state on the model.

For example if we store an array with timestamps with another time zone
than utc we will get discrepancies when accessing the models data before
and after persisting it.
Merge pull request #563 from Oktavilla/key-serialization-mutates-document-state

Key serialization mutates model state when using key Array with option typecast