Support navigation between pages using the SDR API.

When navigating between pages on the site, rather than resolving the route
locally we'll instead ask the server to resolve it using the
"server-defined route" API. This does the route resolution on the server
and then just leaves the client to execute the controller and populate
the template.