mapWithIndex(projection) {
        let seq = this._iterable;
        return Seq.fromGenerator(function*() {
            let i = 0;
            for (let e of seq) {
                yield projection(e, i);
                i += 1;
            }
        });
    }
Returns a sequence iterating the results of applying a transformation to the indexed items of the receiving
sequence.
@param {!function(T, int): R} projection
@returns {!Seq.<T>}
@template T, R