Fix bug in Application controller.

Do not spoil the default switch options.
Introduce a DEFAULT_STATE for controllers.

This allows parent controllers to be lazy with specifying the sub-state.
Also it decouples the implementations a bit.