Experimental extensions model

This is a follow-up to discussions over there:

* https://github.com/docker/docker-registry/pull/493
* https://github.com/docker/docker-registry/pull/565

and ideas from @wking @ncdc and @smarterclayton (and others)

This is not necessarily a replacement for the other PRs - rather an attempt at formalizing the discussion into concrete code.

This may or may not be merged, depending on whether:

a. this does solve the needs of the people interested in extending
b. this is clear enough and simple to use (both for users and developers)
c. the maintenance burden is small on the core registry team

Opinions?
On Thu, Sep 18, 2014 at 06:23:17PM -0700, Andy Goldstein wrote:
> >          '--graceful-timeout', env.source('GUNICORN_GRACEFUL_TIMEOUT'),
> > +        '--reload', False if env.source('SETTINGS_FLAVOR') == 'prod' else True,
> 
> FYI this line has been removed from the master branch and should be
> removed from this PR as well - it breaks the docker-registry wrapper
> script.

Rebasing onto something after #548 landed should do the trick.