Remove property subjects, refactor bindings

**:warning: NOT READY TO MERGE :warning:**

This is a sweeping refactor of the property subject and binding code, to simultaneously solve a few different problems:

 1. Duplicated implementation logic
 1. Confusion about which side bindings go on, how many you need to create to do things, etc.
 1. Confusion about how bindings don't echo values sent to them

The "facts and rumors" terminology is from [a blog post](http://apfelmus.nfshost.com/blog/2012/03/29-frp-three-principles-bidirectional-gui.html#composing-user-events) about bidirectional data flow in GUIs.

Still a huge work-in-progress, but I'd love feedback on the API. In particular, are the separate endpoint classes/properties useful? I thought they might highlight that a binding has two sides, but there's really no reason they couldn't be part of `RACBinding` proper.

**To do:**

 - [ ] Unit tests
 - [ ] Fix AppKit bindings API

@Coneko @andymatuschak