Fixing a major bug in router activation.

-Router activation is now asynchronous (actually it always has been...I
just forgot that...which turned out to be the source of a number of
bugs.). When using the router call activate and return it's promise from
your shell's activate.
-Streamlined how animations are handled in the composition module.