Switch RACSignal primitives to map and flatten

This changes `RACSignal` to use `-map:` as a primitive and have `-flattenMap:` be implemented in terms of `-map:` and `-flatten` rather than the other way around.

This allows `-concatMap:` and `-switchMap:` to not go through `-flattenMap:`, saving one signal transformation.

(To be clear `-concatMap:` and `-switchMap:` do not exist yet, but the patterns they represent do)