feat(registry): Configurable storage backends

Refactored the deis-registry configuration template to
make the storage backend configurable via etcd

Fixes #1119

Also start deis-cache before starting deis-registry and grant
deis-registry access to the /deis/cache etcd key space

Fixes #1120
fix(tests): don't make assumptions about the user's system
fix(tests): report curl output if it wasn't "Powered by Deis"

If the smoke test fails, it now reports what curl does see to the
test runner for help in debugging failures.

The smoke test now registers with the router rather than directly
to the controller at port 8000, and the .HostName config field was
more appropriately named to .Domain.
Merge pull request #1439 from deis/fix/tests/Xe

fix(tests): don't make assumptions about the user's system
fix(userdata template): put motd directly in the OS

Same kind of fix as PR 1444. Trivial fix that saves a systemd unit from
being run needlessly.
Merge pull request #1445 from deis/fix/userdata/motd

fix(userdata template): put motd directly in the OS
fix(userdata template): put `nse` function in FHS

Gentoo's `/etc/profile` automatically sources all `.sh` files in
`/etc/profile.d` when bash is run. This reduces boot time at the expense
of an extra file read per shell opened. However this is a minimal cost
for the FHS convenience. Trivial fix.
Merge pull request #1278 from johanneswuerbach/enhanced-registry

feat(registry) Configurable storage backends
Merge pull request #1444 from deis/fix/userdata/make-nse-profile.d-function-script

fix(userdata template): put `nse` function in FHS
fix(Makefile): force constant output of fleetctl list-units
fix(client): skip logout if connection fails

Logout should never really fail - if the controller is inaccessible, we
should make sure we're deleting the cookies and then return.
feat(client): add -a option to client

Now you can use -a or --app to specify an application's name.
fix(builder): pass in http_proxy env variables from host
Merge pull request #1446 from deis/fix-Makefile-fleetctl-list-units

fix(Makefile): force constant output of fleetctl list-units
fix(client): remove check for error message

This check was originally used for API/client version mismatches, but
breaks when the response is not as to be expected. The client response
works, anyways:

    ><> deis apps
    405 METHOD NOT ALLOWED
    {u'error': u'Client and server versions do not match.\nClient version: 0.10\nServer version: 0.11'}
Merge pull request #1449 from deis/816-add-a-option

feat(client): add -a option to client
style(controller): remove newline characters from response
Merge pull request #1453 from deis/1448-json-error

fix(client): remove check for error message
Merge pull request #1447 from deis/1053-auth-logout

fix(client): skip logout if connection fails
fix(client): make --auth optional

If --auth was not supplied previously, the code for clusters:update
would break because it was supplied a NoneType when opening the file.
Skipping the code block when --auth is not supplied fixes this issue.