code: function Scheduler (opts) {
    opts = opts || {}
    this.subscriptions = {}
    this.state = 'STOPPED'
    this.storage = opts.storage || new StorageMemory()
    this.triggerObservable = Observable.create(function (observer) {
      this.triggerObserver = observer
    }.bind(this))
    if (opts.onTick) this.onTick = opts.onTick
    this.completeOnEmpty = !!opts.completeOnEmpty
  }
docs: Cogsworth scheduler
  @class
  @param {*} opts
  @param {Storage} [opts.storage=StorageMemory]
  @param {Function} [opts.onTick] Scheduler the scheduler calls a function each
  time a trigger emits, vs `.start` providing an Observable instance
  @property {string} state STOPPED, STARTING, RUNNING, STOPPING
  @property {boolean} [opts.completeOnEmpty=false]