Move most RACCommand logic to the main thread
Add a couple assertions to verify the main thread

These might help someone migrating from RAC 1.x.
Derp, canExecute needs to be main-threaded too

Otherwise, we can't bind it to the UI easily.
Test that RACCommand completes on the main thread
No need to redeliver RACCommand.canExecute anymore
Undo some documentation changes
Merge pull request #540 from ReactiveCocoa/main-thread-command

Refactor RACCommand to work solely on the main thread