flatten() {
        return new Observable(observer => {
            let unsubs = [];
            unsubs.push(this.subscribe(observable => unsubs.push(observable.subscribe(observer))));
            return () => {
                for (let unsub of unsubs) {
                    unsub()
                }
            }
        });
    }
@returns {!Observable.<T>} An observable that forwards all the items from all the observables observed by the
receiving observable of observables.
@template T