specify named routes and track urls for each on the server

This adds the (optional) ability to name routes as you define them.
A `Url` will be stored on the server for each named route.

This url object will be eventually used to generate route strings
given a route's name and some optional route data.

This contains a bunch of "cleanups" to the options on the server
configuration as well.  This is just to better organize them (there
are a lot) and help with readability.