Pluggable architecture

This is not to be merged right now.

It's an overview (and a call for comments) of the new plugin architecture.

A few facts:
 * right now, the plugins are expressed as git submodules in the `depends` subfolder, and the git repos are under my nick
 * the idea is to use namespaces - unfortunately, using `docker_registry` as a ns turned out to be more difficult than expected - hence the (slight) delay on this PR
 * `docker-registry-core` (https://github.com/dmp42/docker-registry-core) is to contain (few) common utilities that are of interest to plugins and registry, its purpose being to minimize the work for plugins developers and to let us express our storage API and centrally update tests
 * `docker-registry-driver-file` (https://github.com/dmp42/docker-registry-driver-file) (and swift) are first expressions of these new plugins 
 * these are not used yet in docker_registry and generally its broken and unusable

What I would love to have for now is opinions:
 * take a look into `core`: are you happy with what is there?
 * take a look into a driver (say: file): are you happy with the way it's done?
 * are we ok with git submodules? or do we prefer straight folders in the main repo?
 * any other remarks about the architecture

I'll push more commit as soon as I'm building successfully again.

cc @samalba @shin-