Reboot without Promise<T> and synchronous enumeration

_(Doing this here instead of the ReactiveCocoa repository, because I'm back to super experimental stuff again.)_

I discovered while attempting to write an `AsyncEnumerable` extension for `NSURLSession` that promises + synchronous enumeration make for a really unpleasant combo.

It turns out promises still suck. Who knew?

Anyways, this brings it back to basics: plain [`Enumerable<T>`](https://github.com/jspahrsummers/RxSwift/blob/why-lisa-why-why/RxSwift/Enumerable.swift) representing a cold signal, and [`Observable<T>`](https://github.com/jspahrsummers/RxSwift/blob/why-lisa-why-why/RxSwift/Observable.swift) representing a hot signal—both defined very similarly to what you'd find today, with the notable Elm-inspired change that `Observable` must always have a current value (just like a property!), and cannot complete or error.

I suspect this will simplify a lot of things, but we'll have to see how it plays out.
Probably, eventually. It makes storage more annoying, though, since you need to qualify the type of `Sink` accepted to functions, and store them as `SinkOf<T>`.

I'm sure I'll end up doing it, but the standard library is mostly noise right now.