Remove redundant Close/End guards from operators and add them to sources (#55)
* Remove strict end test from map operator
The map operator doesn't need to guard
against signals after End since it's a
safe and repeatable effect.
* Remove strict end guard from onEnd operator
The onEnd operator does run a side-effect, but
it can rely on the convention of no signals being
emitted after End/Close.
* Add Close guards to all sources
Since we now assume that sources behave
well and operators don't have to guard
Close events, unless they're dealing with
multiple sources and side-effects, the
sources can be amended instead.
authored by