function Limiter(maxDegreeOfParalellism) {
            this.maxDegreeOfParalellism = maxDegreeOfParalellism;
            this.outstandingPromises = [];
            this.runningPromises = 0;
            this._onFinished = new event_1.Emitter();
        }
A helper to queue N promises and run them all with a max degree of parallelism. The helper
ensures that at any time no more than M promises are running at the same time.