Add tests for Route and finalize implementation.
Major rewrite to how routes are built.
Routes are now based on "Actions" which are a controller and method notation.
URL building is now based on the route key instead of an array of parameters.