WIP implementing Stream operations in Observable

Fucking `typealias`.
Fuck tha police, just use closures
Implement Observable.single
Add more `let`s
Reimplement Observable around new flattenScan op
Merge pull request #2 from jspahrsummers/observable-stream-ops

Refactor Stream<T>, implement basic Observable<T> ops, change Observer into a closure