PluginLoader: Making mutex recursive to enable plugins to load other plugins

Is there any particular reason why this shouldn't be a recursive lock? I ran into a deadlock when a call to `loadService` caused a service to use a service requester to load _another_ service.