Subroute navigation

The best I can do is deleting before writing. Otherwise you have the risk of losing out on keys from your parent's prototype that you had previously set to undefined but won't be unsetting here.

Since it's using Object.keys, there's no cost if we hadn't previously unset keys.

We could likely avoid a lot of these costs by swapping objects here, but I like maintaining the params objects for clean data-binding behavior.