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:
Add -[RACSignal ignoreElements]
Tests for -ignoreElements
Merge pull request #269 from github/ignore-elements

-ignoreElements
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
Remove RACMaybe and -asMaybes
Added RACEvent class, representing any stream event
Add a name to -ignoreElements
Added -materialize
Added -dematerialize
Refactor -collect using -aggregateWithStartFactory:combine:

Also handle nils properly.
Rewrite -any: and -all: in terms of -materialize