Port lift test, improve flatMapEnd dispose

Remove unused bits from stream-helper
Port MulticastSource tests

Scheduler.asap now returns a promise for the task result, which may be rejected due to task error.  Task errors propagate in "both" directions: to upstream via returned promise, to downstream via task.error
Port switch tests