Support mvvm bindings.
Integrate mmvm to some components.
Properly register and unregister bindings.

When a visual becomes 'hooked to the stage' bindings are registered
and we unregister them when it becomes unhooked.
Support auto binding.

When a node is added to the tree (its connectedToTheStage becomes true) it
binds itself to the proper scope. When it is removed from the tree it unbinds
itself.
The scope is identified by the followinng rule:
a) The node owns a topScope, in which case this scope is used (private scope).
b) A scope is found in one of its parents.
c) The global scope is used.
Hide bindMVVM (only called internally).