Don't call self.load() from registry.register() to avoid recursion.

Presently registry.load() imports provider modules, and each module
calls registry.register(), which itself calls self.load().  The result is
that self.load() attempts to import the entire list of modules once for
each provider module that calls registry.register().

The recursion doesn't hurt because already-imported modules don't run
again, but it would be better to avoid it, and there's no reason for
registry.register() to call self.load()
Merge pull request #555 from agriffis/fix-recursive-registry

Don't call self.load() from registry.register() to avoid recursion.