groupBy(keySelector) {
        let map = new Map();
        for (let item of this._iterable) {
            let key = keySelector(item);
            if (!map.has(key)) {
                map.set(key, []);
            }
            map.get(key).push(item);
        }
        return map;
    }
Returns a map, with keys generated by passing the sequence's items through the given key selector, where each key
maps to an array of the items (from the sequence) that mapped to said key.
@param {!function(T): K} keySelector
@returns {!Map.<K, !(T[])>}
@template T, K