Follow recommended RAC style for chained signals

See https://github.com/ReactiveCocoa/ReactiveCocoa/blob/2.0-development/Documentation/DesignGuidelines.md#indent-stream-operations-consistently
Use -deliverOn: instead of -subscribeOn:

This is basically a documentation problem. See https://github.com/ReactiveCocoa/ReactiveCocoa/pull/543
More idiomatic timer-based signal

We take the interval, map each tick to the input signal, and then subscribe only to the latest one. We deliver the results to the main thread at the end, because that's the latest we can defer it (see https://github.com/ReactiveCocoa/ReactiveCocoa/blob/2.0-development/Documentation/DesignGuidelines.md#switch-schedulers-in-as-few-places-as-possible)
Remove now-unnecessary @weakify