Detect home directory in way that is safe for cross-compilation.

Using the built-in 'os/user' package requires cgo, which means that
binaries cross-compiled on Darwin for Linux don't work.
Bubble up AWS error, if creating a new S3Client fails.
Merge pull request #3 from dogestry/aws-error-bubble-up

Bubble up AWS error, if creating a new S3Client fails.
Merge pull request #4 from dogestry/cross-compilable-homedir

Detect home directory in way that is safe for cross-compilation.
Add a few basic tests to cli.go
Move flag assignment to init().
Add 'hosts' command line flag.
Make Pull command work with multiple docker hosts concurrently.

The Pull command can now download an image from S3 and upload it
to multiple docker hosts, called "PullHosts" internally. Downloading and
uploading are both concurrent operations.

PullHosts can be configured using the new `-hosts` command line option.
If `-hosts` is not set, then the PullHost is set to the same as the
DockerHost, and is configured the usual way with config.GetDockerHost().

* The `-hosts` option must be in the following form:

  tcp://host1:port1,tcp://host2:port2

* `dogestry pull` will perform the following steps:

    1. Check each PullHost to see what images need to be
       downloaded from S3.
    2. Download each image concurrently into a temp directory.
    3. Upload a tarball of the temp directory to each PullHost
       concurrently.
Rename command-line option: -hosts to -pullhosts.
Update Readme.md to describe new pull command.

Describe how to use the new `-pullhosts` command line option
to pull an image to multiple docker hosts concurrently.\