Support for marking objects as observable, and getting notifications when those objects are mutated.

This library is used to observe changes to observable types. It also has helpers to make implementing and using observable objects easy.