Signal generators

A simpler, hopefully more intuitive version of the `RACSignalProvider` class suggested in #874.

The basic idea is that a "signal generator" (terminology completely up for debate) represents an arrow `a ~> Signal b`. The pure form is equivalent to a Kleisli arrow; _however_, `RACSignalGenerator` explicitly supports subclassing to add impure behaviors. The result is sorta like an object-oriented version of `-[RACSignal bind:]`, which may be easier to understand for OO programmers.

~~One particular example, `RACTransactionSignalGenerator` (name also not final), uses state to recover `RACCommand.executionSignals`-like behavior after its deprecation in #910.~~

Also, signal generators — and `-[RACDynamicSignalGenerator initWithReflexiveBlock:]` in particular — should make it easier to implement [lazily-generated, indefinite signals](https://gist.github.com/jspahrsummers/5032383).

I'm still having a somewhat difficult time foreseeing how this API will be used, but its power and general utility is apparent to me.

Thoughts?

**To do:**

 - [x] Explain subclassing pattern more
 - [x] Postcomposition method
 - [x] Methods for easily decorating a generator?
 - [x] Unit tests
 - [x] [CHANGELOG](https://github.com/ReactiveCocoa/ReactiveCocoa/blob/signal-generators/CHANGELOG.md#signal-generators)
 - [x] Refactor recursive blocks in `RACSignal` operators to use signal generators instead

@jonsterling @paulcbetts @robrix