Use KVO in a context-aware fashion.

Small (but pervasive) changes to set a good example, and pay attention to the context when setting and using KVO.

The tests and the demo app use the addresses of static variables for their context pointers. References:
http://www.dribin.org/dave/blog/archives/2008/09/24/proper_kvo_usage/
http://stackoverflow.com/questions/12719864/best-practices-for-context-parameter-in-addobserver-kvo