-[RACSignal takeUntilReplacement:]

As described in #956.

I don't like the name at all, because it's very ambiguous. `-cutOffBy:` would have been clearer, but I want to main signal to be the receiver, and the approximation signal to be the one to be passed in, because that's usually much simpler and might be even written inline if it's just a `+return:`.

I've implemented it twice, the second time is the implementation I like best, but there is a uglier implementation that doesn't use `RACReplaySubject` in case it isn't a good idea because of deprecation or because it keeps all the values the signal has sent around even when there's no need for it anymore.