observe(object, callback) {
    const objectId = object[OBJECT_ID]
    if (!objectId) throw new TypeError('The observed object must be part of an Automerge document')
    if (!this.observers[objectId]) this.observers[objectId] = []
    this.observers[objectId].push(callback)
  }
Call this to register a callback that will get called whenever a particular
object in a document changes. The callback is passed five arguments: the
part of the patch describing the update to that object, the old state of
the object, the new state of the object, a boolean that is true if the
change is the result of calling `Automerge.change()` locally, and the array
of binary changes applied to the document.