Support pulling from a private registry

If an AuthConfig struct is supplied to PullImage it will be encoded and sent via the X-Registry-Auth header.

doRequest now takes an map of headers to add to the request.
PullImage now takes an optional AuthConfig
Added AuthConfig struct and test.