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.