Port Widget.js to typescript
(WIP) saving working dir state
more wip
readability mapf function
Init all command models, then do views & ctrl

Command constructor is responsible for all initialization, does not
require external triggering of events (except when new parent is added).
Views and controllers are initialized after the entire model tree is
initialized. This makes view and controller initialization more
straightforward.
Ensure consistent state around parent change event
Merge branch 'master' of ssh://github.com/hraban/lush