KVO via singleton proxy, redux

Continuing @rspeyer's KVO proxy implementation from #1276 

Firstly, this pull request is to bring @rspeyer's changes up to date with `master`. This will mainly be updating the tests from Specta to Quick. Beyond that, perhaps `RACKVOProxy` and `RACKVOTrampoline` will be unified.

cc @epatey @modocache

Yes this was a change made after the PR was submitted and I thought was not going anywhere - since we are reading and writing these primitives on different threads, their accessors must be `atomic` or you are subject to access exceptions.