Introduce OperationNotAllowed exception
Introduce reference tracking in Cache

Any links to a record will be stored on that record's `refs` property, keyed by the full path of the link.

These references are automatically tracked in the Cache as records and links are added and removed.
Ensure that link values are strings before adding / removing refs
Only allow "add", "remove" and "replace" operations in `transform()`
Expand comments in Cache
Privatize `_xxxxRef` methods; Introduce `_transformRef`
Cache now emits didTransform events
Add options: `trackRefs`, `trackChanges` and `trackRefChanges`
Cache automatically removes references when a record is removed
Clarify comments
Introduce `isNone`

Checks whether an object is `null` or `undefined`.
Comment out logging