Move +error: behavior into a private subclass
Move +empty behavior into RACEmptySignal
Move +return: behavior into RACReturnSignal
Move +createSignal: behavior into RACDynamicSignal

This required -subscribe: to be reimplemented from scratch in
RACSubject, but this actually turns out to be a good thing.

Many of the +createSignal: behaviors (like global refcounting) don't
apply to a persistent subject.
lmao if NSError actually supports <NSCopying>
Import OSAtomic.h in RACDynamicSignal
Only build descriptions for +error: and +return: in DEBUG

This matches the behavior of -rac_description in other signal names.

(These constructors don't use -rac_description because it omits
information that's generally valuable for a single-value or
single-error signal.)
Turn RACEmptySignal into a singleton in Release builds
Use singletons for +return:nil and +return:RACUnit
Merge pull request #858 from ReactiveCocoa/faster-primitive-signals

Split primitive signal behaviors into separate classes