Addition containerization work

- cleanup tests to make tests needed easier to write
- add resolveModel to the default resolver
- have Route#model utilize the container on factory lookup
- improve input validation and error handling