Backport RACLiveSubscriber from aborted 3.0 branch.

This was a very valuable change in the aborted 3.0 branch since it dramatically reduced the number of subscriber objects created.

Because `v2.4.1` and `aborted-3.0-development` diverged so much, the cherry picking required quite a bit of conflict resolution that would benefit from additional review.

FWIW, my app makes extensive use of RAC, and I've been running it successfully on this branch for a while.


What happened here? Can you revert the changes not related to adding and removing source files?