Added draft of interface of methods for two-way binding.
Added some basic tests.
Changed the names of the methods.
Removed shorthand method.
Added shorthand method to iOS-specific category.
First draft of implementation.
Changed rac_bind:signalBlock:toObject:withKeyPath:signalBlock: to accept nil signal transformation blocks.
Revert "Added shorthand method to iOS-specific category."

This reverts commit 730f87ccb28432cb5b7b8f081de095c25ee46056.
Added test for race conditions when bound objects are changed simultaneously.
Removed test for transformation application. It's best left as an implementation detail.
Changed API.

The signals were a can of worms, giving the user control over them was handing them the can opener.
Fixed the race condition.
Refactored the small blocks capturing the pointers away.
Made version counter rollover-safe.

Unfortunately it made the code a bit less portable, it now requires gcc or clang to compile.
Documented caveat about properties that return values different from the ones being set.
Merge branch 'master' into two-way-binding
Unrolled the static block. It was causing very weird problems with variable capture.
Made the test for the race conditions more robust and friendlier on the CI.
Added test for KVO interference.
Added a test for disposing the binding and one for race conditions on atomic properties being set concurrently.