feat(*): move data containers into new unit files

Moving these containers into their own data files
sets the stage for locking data containers to specific
machines. This also enables us to stop Postgres cleanly on
the database-data container.

closes #638
fix(*): schedule data containers to specific machines

Currently, whenever database, logger, registry, or builder are rescheduled
by fleet, their data container is left on the original machine. The effect
for the user is that they lose their data! This commit schedules data containers
to a preselected machine. If that machine goes down, the underlying service will
go down, but this is preferred to scheduling it on another host that won't have
the data.

Note that this is an interim fix - stateful data should be stored off-host.

closes #1038
Merge pull request #1107 from deis/1038-static_data_containers

fix(*): schedule data containers to specific machines
chore(tests): update vendored Docker cli code to v1.1.0
fix(tests): use `docker run --rm` instead of explicitly removing containers
fix(tests): report errors from `docker pull` on main goroutine

See http://golang.org/pkg/testing/#T.FailNow