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`.
what is the difference between this context and `when default host is specified` ?