ready (cb) {
    return new Promise((resolve, reject) => {
      if (this.isReady) {
        resolve(cb())
        return
      }
      this.callbacks.push([cb, resolve, reject])
    })
  }
Queues a callback to be invoked when the editor is ready (or
  to be invoked immediately if it is already ready--i.e.,
  if `runCallbacks` has been run).
@function module:SVGthis.ready
@param {module:SVGthis.ReadyCallback} cb Callback to be queued to invoke
@returns {Promise<ArbitraryCallbackResult>} Resolves when all callbacks, including the supplied have resolved