Fix routing extensions leaking out of their scopes.

Each route builder should not leak extensions into other scopes. When defining extensions in one route builder, they should not automatically be available in other scopes. What we want to avoid is a plugin like DebugKit adding `.json` extensions to all the application routes.

Refs #5089