Adds a low level registry http client interface and implementation

This changeset adds an http client for the exposed registry JSON api, as defined in [docker/docker#9015](https://github.com/docker/docker/issues/9015). Several data structure types are added to the main registry package to define objects that will be serialized/deserialized in this JSON api.
Just make this definition in `client.go`. These generic "types" files easily get out of hand.