Add identity function

h/t @maxpow4h
Implement `map` as a primitive over streams
Add missing specializations to map implementations
Obviate need for initialValue in Observable.init

If we get a generator which sends at least one value synchronously,
that has the same effect, and protects against races.
Implement `merge` as a stream primitive
Replace extant refs to TypeEquality with identity
Implement filter and dematerialize for Enumerable
Implement `scan` as a stream primitive
Implement Stream.combinePrevious
Implement `switchToLatest` as a stream primitive
Add controllable EnumerableBuffer, like a subject
Add ObservableProperty
Add Enumerable.bindToProperty