Distributor dev guide implementation

I figured this would happen, but as part of this I pulled some more things from the importer dev guide into the plugin common area so that both types can just refer to the single description (metadata and validate_config methods).

The example is coming next, so don't be surprised to not find it in here.

It's way shorter than the importer, but there's a lot less the distributor does. At the same time, this was tricky since the possibilities of how a repo is published are so vast. I'm open to suggestions on things I should dig into, especially since I'm starting to suffer from writing overload.