Remove -map: override from RACSignal
Remove -flatten override from RACSignal

This effectively changes the implementation to use -bind: instead of
-flatten:, which is not only more general, but probably faster (since
it doesn't have any kind of queuing algorithm).
Add unit tests for -timeout:
Refactor -timeout: to use +interval:
Tests for -finally:
Refactor -finally: to use -doError: and -doCompleted:
Call -subscribe: directly in -defer:
Refactor -distinctUntilChanged to use -bind:
Merge branch 'master' into build-on-primitives-more

Conflicts:
	ReactiveCocoaFramework/ReactiveCocoaTests/RACSignalSpec.m
Merge pull request #268 from github/build-on-primitives-more

Refactor from-scratch signal operations to build on others instead