Keep Signals alive while observe() Disposable is

This way, you can hold on to one or the other—no need for both.
Inline EventBuffer behavior to reduce confusion

This makes the memory management way simpler, and makes the algorithm
more obvious overall.
Merge pull request #1409 from ReactiveCocoa/improve-memory-management

Improve Signal's memory management