Hide model*Changed and lazyModel*Changed from the public Node API

This uses a side table with a get that walks the prototype chain. This allows us
to get the semantics of protected methods. Anyone that has the symbol
(side table) can get to the method.

lazyModel*Changed does not need to be inherited since it is always coupled with
model*Changed. If a subclass overrides one and not the other we would have to
change back to inheriting the lazy methods.

BUG=https://github.com/toolkitchen/mdv/issues/4

Review URL: https://codereview.appspot.com/7306083