Merge pull request #25 from parisiale/MCOP-13

(MCOP-13) Puppet Agent should validate IPs as names
Change foreground-run parameters.

Before this commit the plugin uses --test for foreground runs. This
prevents --splay // --splaylimit from working.   Here we change to
instead specify "--onetime --no-daemonize --show_diff --verbose"
Merge pull request #26 from richardc/rework_17

Change foreground-run parameters.
maint - ensure we load puppet_server_address_validation

mcollectived when processing the DDL doesn't actually load all the
validators, so we can't rely on the transitive require from
validator/puppet_server_address_validator making the
MCollective::Util::PuppetServerAddressValidation class availablei,m instead we
need to explicitly require it.
ollective::Util::PuppetServerAddressValidation
(MCOP-12) Refactor util.puppet_agent_mgr to improve specs

Avoiding issues related to conditional requires when executing rspec tests;
implement a class hierarchy for the puppet agent manager.

The puppet agent manager logic is now implement with a class hierarchy to
deal with different Puppet versions and platforms; before, we were relying
on dynamic imports of modules to load the right logic. This should reduce
code duplication and make the tests more robust.

Removing gem puppet; improving hash format.