function getWriteableCounter(value, context, path, objectId, key) {
  const instance = Object.create(WriteableCounter.prototype)
  instance.value = value
  instance.context = context
  instance.path = path
  instance.objectId = objectId
  instance.key = key
  return instance
}
Returns an instance of `WriteableCounter` for use in a change callback.
`context` is the proxy context that keeps track of the mutations.
`objectId` is the ID of the object containing the counter, and `key` is
the property name (key in map, or index in list) where the counter is
located.