Don't interact with updater/deleter if new record

In particular, discrete collection modifications were propagating their
changes to the owning record's `updater` or `deleter` even if it was a
new record. When new records are saved, their collection values are just
set wholesale; the `updater` and `deleter` aren't used at all. If you
then updated the same in-memory record, the `updater` would re-run the
same changes that had happened before record creation, resulting in
incorrect behavior for lists and maps.

Attempting to access the `updater` or `deleter` on a new record now
raises an error, and collections use a `to_update` block to only stage
changes for discrete persistence if the owning record is not a new
record.

Fixes #188