ref(client): move control plane stuff to backend

In preparation for writing tests for `deisctl`, I have abstracted the
concept of the `deisctl` client and the underlying backend clients which
deisctl talks to. In our case, we only have one, which is the fleet
backend. However, in order to properly test `deisctl`, we need to
create a new backend which we can use locally. This is a first pass
at refactoring the client in order to better flesh out these
requirements.

Note that `deisctl config` and `deisctl update` call docopt again,
therefore eliminating the need for additional parameters. This is bad,
as we cannot tell `deisctl config` to use the client's corresponding
backend. This will be addressed in another PR.

I've also removed the commands `list-units` and `list-unit-files` as
they were redundantly calling `list-units`, were undocumented, and
were not used.
Merge pull request #65 from bacongobbler/refactor-deisctl

ref(client): move control plane stuff to backend
feat(deisctl): colorize deisctl
feat(cmd): add informative messages to install
style(cmd): add deis logo to start and install commands
Merge pull request #63 from bacongobbler/deisctl-pretty-print

feat(client): pretty-print deisctl
fix(cmd): only allow the router to scale past 1
Merge pull request #66 from gabrtv/fix-scaling-components

fix(cmd): only allow the router to scale past 1
fix(units): show start-pre status when downloading data container base