Implementing searching and pulling docker images

As noted elsewhere, we should save the deferred returned here, and tie into its fail() method for handling failures (instead of the DockerClient docker_download_fail event).