Update VM to return view controller and more flexible routing

This commit changes the VM to have a method that returns its view
controller. This will allow the use of an over arching wireframe pattern
that can coordinate the displaying and dismissal of modules in both
modal presentations as well as a navigation controller.

This commit also changes the routing methods to take in arguments as to
whether the routing should be animated or perform something upon
completion.