fix(client): clear cookies on login, logout, register

We should be clearing all cookies, since we can only be logged into
a single user and cluster at the same time. This fixes the 403 Forbidden
when being logged in immediately after registering.
feat(contrib): add DigitalOcean provisioner booting CoreOS via kexec

This introduces a provisioning script for Deis on DigitalOcean droplets. As DigitalOcean
does not (currently) support CoreOS, we deploy CoreOS on top of Ubuntu 14.04 using kexec
on boot to switch to the CoreOS kernel and initrd. The state filesystem is a loop
mounted btrfs.

The CoreOS bootstrapping is heavily based on Levi Aul's code:

  https://gist.github.com/tsutsu/490f35f48897df0f5173

We don't use Debian 7.0 as base distribution because kexec is unstable on the Debian
kernel.
refactor(contrib/digitalocean): clean up README, act more like other contrib/ scripts

Updates the README to flow more like the other contrib/ scripts.
Also adds a provision-do-cluster.sh
feat(contrib/ec2): launch into vpc

Modifies the cloudformation configuration to create resources within the
confines of a VPC.

fixes #1005
fix(contrib): Fix markdown output of changelog script

Now the script will generate markdown lists just as the current
changelog in deis/deis:CHANGELOG.md is in.

Thanks to @bacongobbler for the insight about `--format` over
`--pretty=format` and unneeded newlines not being echoed.
fix(contrib/ec2): fix launching into VPC

To successfully launch into a VPC, we must specify the availability
zones associated with each subnet.
feat(changelog script): Have script produce markdown, add settings

This completely revamps the changelog script. It now generates links to
the relevant commits in the format of:

     - [`sha-1 hash`](link on github) subsystem: commit message

Additionally, the types of commits shown in the changelog and the root
repository for the link may be set at runtime. Example:

    $ TYPES='feat(;Features' ./generate-changelog.sh v0.9.0
    $ REPOROOT="http://github.com/Xe/deis" ./generate-changelog.sh v0.9.0

This is purely cosmetic and to enable this script to be reused more
easily. The script is now documented and sourceable as a library for
further reuse.

REBASE EDIT: Link generation is deduplicated (commit was rebased) so that
the commit message is no longer a link to the commit, only the commit hash
is. This also no longer uses a temporary file and uses bash command
output redirection as a backwards pip to directly pull the changes from
git into a while loop. Thanks again @bacongobbler for the guidance on this
latest rebase.

Technique found here: http://linuxshellaccount.blogspot.com/2008/08/using-bash-to-feed-command-output-to.html
fix(*): fix etcd_safe_set to not override values

Refactors etcd_safe_set so it doesn't overwrite custom settings.

TESTING: rebuild and restart components, setting a non-default
custom value
```console
dev $ make uninstall
dev $ vagrant rsync && make build
dev $ vagrant ssh
coreos $ etcdctl set /deis/controller/webEnabled 1
dev $ make run
```
Make sure the settings have taken effect.

Changes proposed by @aledbf

fixes #1210
feat(*): allow custom component images

Pull image names for Deis components from etcd, defaulting to the
stock Deis component images. This enables users to supply their own
router, for instance, simply by setting an etcd key:

/deis/{component}/image

Also, the Deis release version is now stored in /etc/deis-release.
This is by default appended when getting the image names for Deis
components, but can be overridden if set in etcd at /deis/release.
docs(managing_deis): add dependencies for each component

Clearly list the dependencies of each component, along with other
components which depend on it.

closes #1241
refactor(controller): optimize layer creation

This restructures the Dockerfile in such a way that allows users to rebuild the
controller with minimal changes to the docker image's layers.
fix(controller): update Dockerfile maintainer
Merge pull request #1228 from Xe/fix/changelog-script-format

fix(contrib): Fix markdown output of changelog script
Merge pull request #1242 from deis/1241-component_dependencies

docs(managing_deis): add dependencies for each component
fix(client): use sys.stdout.write for logs

The logs already print out newline characters, so using print()
adds an extra empty line to the log output. Using sys.stdout.write()
removes this empty line.
fix(logger): remove Source and Tag from output

An application's logs should not contain which host it was listed
on. It should only care about the data that is relevant to it.

The Tag field is unused, so this added an extra whitespace to the
log format. Removing it cleans up the logs a bit.
test(logger): add filehandler tests
test(logger): add log message tests
feat(logger): add make test/coverage
test(logger): hook up logger tests to TravisCI