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.
The plan here was to actually use the the `gorilla/mux` router to [build urls](http://www.gorillatoolkit.org/pkg/mux#Route.URL). I am not thrilled with `gorilla/mux` on the server-side (see some of my TODOs) so we may change that, but it seems like we should generate the route urls and build the urls in the same set of code.

I guess, place a TODO here to create some sort of "url manager", oriented towards making urls for client and server-side use.