Add support for host, protocol, and port configuration.

This PR is an alternative to #131, #132, and fixes #127.

### New Features:
* Adds support for specifying a default protocol, host, and port in `default_url_options`.
* Adds support for routes which specify a specific protocol, host, or port.

### Changes:
* Changes expectation of `url_links` to a boolean value and deprecates the previous usage. Default protocol, host, and port are now configured with `default_url_options`.
Yes, please make it so.

For if this is taking too long to merge, we are introducing major changes that is never easy and better to eliminate all problems with tested behaviour.  Implementation can suck, but every test should clearly reviewed so that bad behaviour never becomes a standard.