Subclasses are honored
* to_s prints the actual class name
* calls go to eg. self.class not Docker::Image
* Images creating containers and containers creating images go through a private method stub that subclasses can override (allowing MyAwesomeImage < Docker::Image to create a MyAwesomeContainer if appropriate)
Sigh. Making code less readable to satisfy the line-length nanny.
I mean, really. 80 characters? Is this the freaking 1980s and we're halting and catching fire on the same TTY that Cameron used?
Noting that you may not have environment variables set for DOCKER_HOST etc when running rspec
Push and Pull send progress steps to supplied block; pushing raises an error if unauthorized.

* A block supplied to Image#push or Image.create will be called with the parsed hash of each json message streamed back from the server.
* create and push now raise errors if an error response is returned from the server
* The VCR example for creating an image was actually that of a 401 Unauthorized request. I faked data from a successful pull into the 'pushes_the_Image.yml' VCR record, and used the old version as the test case for an unauthorized call.

I'm not quite sure how I should be handling exceptions in all this. First, I'm assuming it's fair to raise an exception if any response from the server shows an error -- but if there are known-harmless errors out there they will now be explody.
Also, if an error condition occurs in the response_block, it is caught and re-thrown as an Excon error. So I'm throwing a generic error inside the block, then catching all excon errors and re-throwing only the ones I recognize (Unauthorized for push, Not Found for pull) as Docker errors.
Callbacks supply context
* The callback in create and push supply the image DNA (create) or the current object (push), so that you have some context.
* Also cleaned up the exception handling, as there are surely more recognizable cases to fish out.
Specify destination of push
* You may now push to any of an image's tags, not just its first, by supplying an explicit :repo_tag arg.