Modify routerState semantics.

Rather than creating routerState, then register it, and then register substates in it
make routerState to act as a state (e.g. as a builder)