Adds logic for tracking ipc storage driver process status

This allows requests to not hang if the child process exits
Adds a low level registry http client interface and implementation
Adds Raw bytes field to ImageManifest

This can be used for proper json signature validation
Define common regexps used across registry application

This commit adds regular expression definitions for several string identifiers
used througout the registry. The repository name regex supports up to five path
path components and restricts repeated periods, dashes and underscores. The tag
regex simply validates the length of the tag and that printable characters are
required.

Though we define a new package common, these definition should land in docker
core.
Disambiguate routing for multi-level repository names

To be able to support multi-level repository names, the API has been adjusted
to disabiguate routes tagged image manifest routes and tag list routes. With
this effort, the regular expressions have been defined in a single place to
reduce repitition and ensure that validation is consistent across the registry.

The router was also refactored to remove the use of subrouters, simplifying the
route definition code. This also reduces the number of regular expression match
checks during the routing process.
Miscellaneous go vet fixes

Fixes some format strings and uses keyed fields for struct construction
Merge pull request #713 from BrianBland/ng-client

Adds a low level registry http client interface and implementation
Simplify repository name component regexp
Merge pull request #722 from BrianBland/vet-fix

Miscellaneous go vet fixes
Merge pull request #721 from stevvooe/disambiguate-url-routes

Disambiguate routing for multi-level repository names
Merge pull request #690 from BrianBland/storagedriver-process-management

Adds logic for tracking ipc storage driver process status