New Feature: Full host and protocol support

This is an alternative implementation of #131 which is more full featured and includes breaking changes.

### New Features:
* Adds support for specifying a default protocol in `default_url_options`.
* Adds support for specifying a default host in `default_url_options`.
* Adds support for routes which specify a specific protocol.
* Adds support for routes which specify a specific host.
* Adds support for using the `window.location.host` when a host has not been specified.

### Changes:
* `generate_url_link` no longer validates that the `:url_links` config value contains a protocol.

### Breaking Changes:
* Changes expected value of `url_links` to boolean true/false and moves host config value to `default_url_options`.

This PR fixes #127.
@le0pard I'm not familiar with CommonJS. However, it will only reference `window` if the default host has not been defined. In the case of CommonJS, the developer should configure a default host and protocol and they will not have issues.