feat(controller): add 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.
feat(controller): hook up domains to router
fix(confd): give controller/router /deis access

Both components require access to /deis/domains, which holds the
keys for all application domains. Since /deis/domains does not
exist at first boot, confd will complain that /deis/domains
does not exist as a key if you supply it to the keys list. Since
the /deis key always exists, setting the keyspace one level lower
fixes this issue.
style(router): add newline
fix(controller): revert e647336741
fix(controller): add /domains access in confd
fix(router): resolve golang template scoping issue
fix(client): cleanup domains output
fix(controller): do not deploy releases on domains

Heroku doesn't deploy a new release when you add a domain to an app.
Neither should we.
feat(controller): log domains deployed
fix(client): handle created response code on domains:add
refactor(domains): cleanup domain publishing logic and URLs
fix(controller): give access to /domains

The controller needs access to /domains, not /router.
feat(controller): allow shared users domain access
docs(developer): add domain documentation
style(docs): clean up spacing
docs(developer): use note styling
refactor(controller): bump migration number

PR #956 was developed at the same time as PR #967. The latter was
merged first, so let's bump the number up by one.
fix(router): create /deis/domains

The router and controller need this keyspace to exist.
fix(*): set etcd keys safely in /bin/boot

Each etcd configuration key should be set-if-unset. Previously,
we were setting all of these defaults if one directory existed,
but it's safer to set each one individually if it is unset.