Add support for subdomains.

The idea of this is to add support for using subdomains with services. This PR has several important changes:

1. The config section may now have subdomain-required attribute. If set to true then the customer must provide a subdomain. Failure to do so is expected to result in an error.
2. The record name may be omitted. If omitted then it is the same as a blank value.
3. It is expected that the fully qualified record name will now be `{{record.name}}.{{subdomain}}.{{domain}}`. If a label is blank then it will be omitted when creating the fully qualified record name.
4. The subdomain will be provided to hooks and will be exposed as a variable.

This is still a WIP and requires changes to the DNSimple application to be deployed first.