Reworked how configuration works a little. The problem is that some configuration
can't be loaded from JSON (things like callbacks). This makes it tricky to
get the correct load order. As-is, the route configuration was being loaded
before the global configuration, and you'd end up with 2 separate configuration
(or middlewareFactories).

The new approach is more structure and logical. Global configurations are loaded
upfront (either via json or code, or both) then route configurations.
Parse query string and expose it directly in the Context().

Look, I know url.URL exposes a Query method. But that's exposes values
as a []string. Sure, that's correct, but it's also a pain in most cases. Deal
with it.