Use weak references in KVO observation

Hopefully fixes #1206 and #1548.
We do this dance for the same reason we have [`__weak` parameter annotations](https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1595#issuecomment-65323282).