Use DI for routing

Remove dependency on shared todoFilter by simply passing the selected filter through. Remove need for specialized router, by using DI in main to configure a plain router with the application-level routes.