MCO-31 Change method of running puppet to double-fork foreground run

Specifying `--daemonize --onetime` causes quite an amount of confusion
by running puppet as a daemon, but for the semantics of a one-off backgrounded
run.  See PUP-1320 for more discussion of this issue.

This patch makes use of the usually uncalled
MCollective::Util:PuppetAgentMgr#run_in_foreground method, and then
when running a command from MCollective::Agent::Puppet#run we
double-fork and exec to dissasociate the process from the mcollective
daemon, and run optimistically in isolation.  This is the same model
as used on Windows, brought to Unix flavours.