fix(services): prevent units from stopping as "failed/failed"

Deis' systemd units always return "failed/failed" after being stopped
by fleetctl. Somehow our ExecStop command to remove the service container
conflicts with our ExecStart command and causes it to return an error code.
This is fixed by removing the ExecStop commands and adding a `--rm` flag
to the docker command in ExecStart. Additionally, our on_exit() handler in
each /app/bin/boot script was not returning 0.

TESTING: Run `make run`, then `make stop` on a Deis cluster. You should see
all units stop and return to "inactive/dead" status, whereas before they
would show "failed/failed."
Merge pull request #1224 from deis/1222-make-run-fix

fix(services): prevent units from stopping as "failed/failed"
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.
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
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
Merge pull request #1246 from deis/dockerfile-optimization

refactor(controller): optimize layer creation
Merge pull request #1123 from deis/1023-parameterized-units

feat(*): allow custom component images
Merge branch 'master' of https://github.com/deis/deis

Conflicts:
	registry/systemd/deis-registry.service