Remove +switch:cases:, tweak +switch:cases:default: behavior

Starting from my comment at the end of #658, this makes the following changes:

 * `+switch:cases:` has been removed so that callers always have to think about whether a default is appropriate.
 * **However**, the `default` argument is now optional, in case there really isn't a sensible one.
 * If a value is sent that does not match any case, and there's no default, an error is forwarded on the result signal. Previously, this would've been an assertion failure.
 * `nil` can now be matched explicitly with `RACTupleNil`. No need to use the `defaultSignal` to match it.

@robb