feat(start): wait on containers to start

Previously, containers would start and would be considered "running"
once Fleet launched the container and flagged the job as "launched".
The job was launched, but that doesn't mean that the container was
running. Dropping down to systemd's level (exposed through Fleet)
allows us to wait until the container is actually running. In the case
of data containers, it waits until they have exited.

This commit also removes the start logic from `deisctl install` so that
we can just load the unit files and configure the platform before
starting it.
Merge pull request #51 from bacongobbler/wait-on-start

feat(start): wait on containers to start
doc(state): fix docstring
Merge pull request #52 from bacongobbler/fix-docstring

doc(state): fix docstring
fix(makefile): expand paths for golint

golint requires the full path to source files. It cannot handle
directories as arguments.
fix(deisctl): use docopt's native version parser
fix(client): return error if unit list is empty
fix(client): check if unit exists
Merge pull request #54 from bacongobbler/deisctl-fixes

minor bugfixes
fix(client): destroy all units if none specified
Merge pull request #55 from bacongobbler/destroy-all-the-units

fix(client): destroy all units if none specified
feat(start/stop): allow starting or stopping > 1 unit at a time
Merge pull request #53 from mboersma/parallel-start-containers

feat(start/stop): allow starting or stopping > 1 unit at a time
fix(cmd): append "@1" if none supplied to install
fix(client): dramatically simplify scaling logic
Merge pull request #56 from bacongobbler/fix-install

fix(cmd): append "@1" if none supplied to install
fix(client): destroy all units if none specified
Merge pull request #57 from bacongobbler/fix-scale

fix(client): dramatically simplify scaling logic
Merge pull request #58 from bacongobbler/fix-destroy

fix(client): destroy all units if none specified
fix(cmd): create unit files as readable to all users