(MCO-453) Fix validator plugin load race condition
(MCO-453) Fix validator plugin load race condition

This commit fixes a race condition which occurs when validator plugins
are loaded for the first time by adding a mutex to the Validator
module.

The race condition happens when an agent thread tries to determine
whether it should load the validator plugins, determines that they have
already been loaded by looking at the last_load timestamp but the
validators are in reality still busy loading. By locking the mutex
before the call to #load_validators? we allow
PluginManager.find_and_load to finish before we try and determine if the
validators have been loaded or not.

shrug/marionette-collective,Iristyle/marionette-collective,shrug/marionette-collective,kbarber/marionette-collective,geoffnichols/marionette-collective,MikaelSmith/marionette-collective,heathseals/marionette-collective,spandeyindia/marionette-collective-1,pimpajr/marionette-collective,geoffnichols/marionette-collective,shrug/marionette-collective,heathseals/marionette-collective,puppetlabs/marionette-collective,jessereynolds/marionette-collective,ploubser/marionette-collective,Iristyle/marionette-collective,richardc/marionette-collective,spandeyindia/marionette-collective-1,heathseals/marionette-collective,jessereynolds/marionette-collective,puppetlabs/marionette-collective,heathseals/marionette-collective,jessereynolds/marionette-collective,ploubser/marionette-collective,heathseals/marionette-collective,heathseals/marionette-collective,jessereynolds/marionette-collective,richardc/marionette-collective,MikaelSmith/marionette-collective,geoffnichols/marionette-collective,shrug/marionette-collective,jessereynolds/marionette-collective,kbarber/marionette-collective,shrug/marionette-collective,jessereynolds/marionette-collective,puppetlabs/marionette-collective,johnduarte/marionette-collective,Iristyle/marionette-collective,ploubser/marionette-collective,johnduarte/marionette-collective,geoffnichols/marionette-collective,johnduarte/marionette-collective,pimpajr/marionette-collective,spandeyindia/marionette-collective-1,pimpajr/marionette-collective,pimpajr/marionette-collective,geoffnichols/marionette-collective,spandeyindia/marionette-collective-1,richardc/marionette-collective,kbarber/marionette-collective,MikaelSmith/marionette-collective,kbarber/marionette-collective,puppetlabs/marionette-collective,richardc/marionette-collective,Iristyle/marionette-collective,Iristyle/marionette-collective,spandeyindia/marionette-collective-1,ploubser/marionette-collective,johnduarte/marionette-collective,MikaelSmith/marionette-collective,pimpajr/marionette-collective,kbarber/marionette-collective,puppetlabs/marionette-collective,kbarber/marionette-collective,MikaelSmith/marionette-collective,johnduarte/marionette-collective,johnduarte/marionette-collective,pimpajr/marionette-collective,shrug/marionette-collective,richardc/marionette-collective,richardc/marionette-collective,puppetlabs/marionette-collective,spandeyindia/marionette-collective-1,MikaelSmith/marionette-collective,ploubser/marionette-collective,Iristyle/marionette-collective