RACSignalCommand

This started out as an attempt to replace [RACAsyncCommand](https://github.com/ReactiveCocoa/ReactiveCocoa/commit/1e7986eda6c518a5638fb9f16f6f8b3df2aef174), but ended up as something much more general.

[RACSignalCommand](https://github.com/ReactiveCocoa/ReactiveCocoa/blob/better-async-command/ReactiveCocoaFramework/ReactiveCocoa/RACSignalCommand.h) is basically a command that allows you to "inject" a signal into the command's event stream, but with the option to avoid blocking the thread that `-execute:` is invoked upon. One example use case involves kicking off a network request from the `signalBlock`, then using `RACSignalCommand.executing` to show a loading spinner and disable a button while it's in-flight.

**Notable differences between `RACSignalCommand` and [ReactiveAsyncCommand](https://github.com/reactiveui/ReactiveUI/blob/master/ReactiveUI.Xaml/ReactiveAsyncCommand.cs)** (upon which `RACAsyncCommand` was based):

 * There's no concept of multiple in-flight executions. You're either executing or you're not,  and `-execute:` can't be invoked again until you're done. Multiple things in flight is a rare use case, and significantly complicates the class.
 * There's no way to add work after initialization. This always felt very imperative to me, and doesn't seem like a necessary feature.
 * The signal returned from `signalBlock` _replaces_ the command's normal `next` event. Instead of forwarding `sender` to all subscribers, `RACSignalCommand` forwards the values (and any error) from the instantiated signal.

@xpaulbettsx I'd love to get your thoughts on this interface too, since you wrote the inspiration.