Dont use router navigate in app for logic

Best practices state that the router should ONLY be used as a router,
and should not be used to control flow of the app from within the app.
That is what the controller is for.  This commit updates the logic to
not use the router but instead use the controller for changing screens
throughout the app when necessary.
Update tests