code: function Destructible () {
      var vargs = []
      vargs.push.apply(vargs, arguments)
  
      // By default, we wait a full second for all outstanding callbacks to
      // return.
      this._timeout = typeof vargs[0] == 'number' ? vargs.shift() : 1000
  
      // Displayed when we timeout.
      this.key = coalesce(vargs.shift())
  
      this.context = vargs
  
      // Errors returned to callbacks.
      this._errors = []
  
      // Set immediately upon destruction. Will be true if inspected by any of the
      // destructors registered with `destruct` or `scrammed`.
      this.destroyed = false
  
      // You're welcome to dump this list of waiting callbacks if it helps you
      // with debugging.
      this.waiting = []
  
      // Listen to know when we're done.
      this.completed = new Signal
  
      // Listen to know when to shut down.
      this.destruct = new Signal
  
      // Listen to know if we've forcibly shutdown before all callbacks have
      // returned.
      this.scrammed = new Signal
  
      this.children = new Cubbyhole
      this.siblings = new Cubbyhole
  
      this._completed = new Signal
  
      this.instance = INSTANCE = Monotonic.increment(INSTANCE, 0)
      this._destroyedAt = null
      this._index = 0
      this._vargs = []
  
      this._errored = function () {}
  
  }
docs: Construct a destructable that will track callbacks and timeout if they are not all invoked within a certain time frame when destroy is called.