register(options, fn) {
        if (!Object.prototype.hasOwnProperty.call(options, 'tolerance')) {
            options.tolerance = 0;
        }

        // CASE: nobody has initialised the queue event yet
        if (!Object.prototype.hasOwnProperty.call(this.queue, options.event)) {
            this.queue[options.event] = {
                tolerance: options.tolerance,
                requiredSubscriberCount: options.requiredSubscriberCount || 0,
                subscribers: []
            };
        }

        debug('register', options.event, options.tolerance);

        this.queue[options.event].subscribers.push(fn);
    }
@description Register a subscriber for this queue.

Also initializes the queue for this event if it hasn't already.

The tolerance is for the event on the queue (milliseconds):
  - 0: don't wait for more subscribers [default]
  - 100: wait long enough till all subscribers have registered (e.g. bootstrap)

@param {Object} options
@param {string} options.event
@param {number} [options.tolerance]
@param {number} [options.requiredSubscriberCount]
@param {Function} fn