Move routes to urls package

To lock down V2 api routing, we are moving it to a separate package, with an
exported router creation function and route names. Updates will follow to
prepare the package for export.
Prepare urls package for exports

The route definition files have been prepared for export with documentation.
Consts have been updated and tests are now passing for the urls package.
Porting registry to use urls package

This simply moves the registry app to be using the urls package and its
exported route names. This supports locking down exported route definitions for
use in client packages.
Move urls.go into urls package
Prepare urls.URLBuilder package for export

The URLBuilder is now exported with documentation for its behavior. Its a light
wrapper around gorilla mux that avoids one having to remember exact arguments
take by each route.
Migrate webapp to use exported urls.URLBuilder package
Correct documentation errors in urls package
Change errors export from Descriptors to ErrorDescriptors
Merge errors and urls package into unified v2 package

To provide a single package with v2 API definitions, the locked down portions
of the API have been merged into a single package. References to exported items
will appear as v2.XXX, indicating their origin. The definitions in this package
will soon be locked down for change, acceppting only additions that will not
change protocol behavior.
Migrate references to consolidated v2 package

Routes and errors are now all referenced from a single v2 package. This
packages exports are acceptable for use in the server side as well as
integration into docker core.
Allow variadic url values for BuildBlobUploadURL

URL values may be required to complete an upload in a single POST request,
which may include digest and size. This is not implemented in the server side,
yet, but is part of the HTTP API specification.
Add tests for URLBuilder
Merge pull request #846 from stevvooe/next-generation

Consolidate routes and error codes into v2 package