Add new Domain model.

This is added in the API with 2 new URLS

GET /apps/{app}/domains to retrieve the list of the domains
POST /apps/{app}/domains/{domain} to create a new domain.

The CLI is adapted to make use of this new API.
Publish domain information to Chef databags
Also publish default domain to databag.
Validate hostname input
Add Domains in the admin interface
Save domain parent when saving the domain. Also invalidates '*' subdomains.
Improve invalid domain name error message