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.
Merge pull request #11 from richardc/mco-31

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