Adding a context class for ValueProviderFactories

This allows model binding to once again be independent of routing. Sending
RouteContext into model binding was an odd choice from a layering
point-of-view.
yes it's exactly the same pattern, but just scoped to one scenario rather than a global context object. It's appropriate and better than using routeContext that is not appropriate here.

It also removes the dependency of model binding on routing which is unnecessary.