Allow VMs to set default in their constructor.

This also required making sure that nested viewmodels get initialized so that the user-specified data would be honored.

Fixes #9.
Object.keys will only enumerate things on the object itself, not on the prototype, so all helper functions on the VM shouldn't make this list anyway. We could actually get rid of the special if-checks as long as nobody tries to shadow them on the instance.

In the long run I still think we should consider having the VM use a change notification mechanism more aligned to Object.observe.