Allow custom domain names for applications

This PR was originally (#482) created by @nathansamson, I've just rebased it against **master**.

Here follows the original PR message with few updates:

---

:warning: This code is not production ready. Please do NOT merge this PR as-is!

This is just a start, allowing for early code reviews and comments. This is an attempt to fix #468

Tasks for completion of this entry

- [x] Removal of domain names once added
- [x] Validation of input (checkin if it is a valid hostname).
- [ ] Allow wildcards as first part of the domain. This should be restricted as per Heroku's spec (https://devcenter.heroku.com/articles/custom-domains#wildcard-domains)
- [ ] Waiting for opdemand/deis-cookbook#54 to be merged
- [x] Authorization on adding / removing a domain name (currently this can be done if you have use_app perms on the applicaiton).
- [ ] Write documentation
- [x] Last but not least Write Tests