TakeUntil - remove use of NotificationLite

NotificationLite usage caused issues as the OnComplete/OnError events can't compose when OperatorMerge also uses NotificationLite.
NotificationLite usage should never be leaked outside a single operator.
Merge Backpressure

This is a first pass at a functioning but not elegant implementation of backpressure for merge. The algorithm is bad. Data structures are inefficient. But unit tests are passing (except those where the source data does not obey backpressure ... those will be fixed soon).
Now to performance, cleanup and testing.