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.