tl;dr: Bikeshedding mostly, but it was necessary.

- Removed the different versions of `extend`, because whether they used closures or classes, they introduced another closure anyway.

- Implemented the lifted operators in terms of Subscriber. That means that when they're invoked, they need to be applied to a Subscriber instance.

- Implemented clone on Subscriber, paving the way for MutableSubscriber.

- Assigns the Subscription disposables correctly.