Refactor from-scratch signal operations to build on others instead

Just reducing the amount of code that needs to be maintained and tested.

 * Removed unnecessary `RACStream` overrides in `RACSignal`.
 * Refactored `-timeout:`, `-finally:`, and `-distinctUntilChanged` in terms of other, more basic, methods.
 * Cleaned up `-defer:` a bit.