An implementation of the KVO pattern, inspired by Google's MVCObject class