cleaning up provider discovery in modules
Fixing order in which modules are registered, cleaning up and fixing bitmask stuff

Also adding more restrained stepping out of the master module on not
finding a provider, future will tell if that was a smart move, seems
at least reasonable, though