core: teardown and stop producer before complete/error (ec8d6e8), closes #91
BREAKING CHANGES
core: in this version, when a stream completes or errors, its producer has already been
stopped. In previous versions, the stream first completes, propagates the complete to other
listeners and operators, and then its producer is stopped. You may barely notice this breaking
change when updating your code. Most existing code will still work like before.