"Implementing new operator" guidelines

Part of #304.

[Rendered Markdown](https://github.com/ReactiveCocoa/ReactiveCocoa/blob/new-operator-guidelines/Documentation/DesignGuidelines.md#implementing-new-operators)

**Sections to do:**

 - [x] Prefer building on RACStream methods
 - [x] Compose existing operators when possible
 - [x] Avoid introducing concurrency
 - [x] Cancel work and clean up all resources in a disposable
 - [x] Do not block in an operator
 - [x] Avoid stack overflow from deep recursion