WIP #7008 - add plugin helper to register and manage backend providers

- DNS module API class & virsh provider converted to use it
- fixed a few bugs in plugin dependencies, which weren't working
- plugin registration helper to register a provider in another module lazily, before it's loaded
- automatically adds a >= 0 dependency on the module that a provider's registered for