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
maint - the plugin install guide moved

Point at docs.puppetlabs.com's newer version rather than the old redmine wiki.
maint - the official gem is called mcollective-client

When I added the initial travis testing in 779969 I feel into the not uncommon
trap of thinking the official gem would be called 'mcollective' and not
'mcollective-client'.

Here we tweak the Gemfile to test against that instead
maint - add mcollective 2.4.x to travis matrix
Merge pull request #14 from richardc/travis_2_4

Add MCollective 2.4.x to the testing matrix
With mcollective 2.4.1, I am unable to pass --no-noop and --no-spray.
Inspecting the configuration hash, it appears that when specifying a --no- option on the command line,
the configuration[:attribute] is set to false.

Checking if the hash includes the no_noop/no_spray options so that we do not break compatibility with 2.2.x installs.
Process should be referenced using the fully qualified class (::Process).

When the process agent is also deployed, Process gets resolved in MCollective::Agent::Process, thus breaking things.
Merge pull request #13 from m4ce/master

Fixes command-line parsing under mcollective 2.4.x and 2.3.x.
Fixes interaction with mcollective-process-agent by qualifying references to ::Process
maint - make the spec tests a little more robust

Some tests were reliant on other tests loading/defining namespaces for them,
which meant you couldn't run the spec tests in isolation, only in the whole.

This commit adds missing require lines to ensure the aspects of the module
under test are loaded as expected.

Flushed out with this snippet:

    for spec in $(find spec -name \*_spec.rb); do echo $spec; bundle exec rspec $spec; done
Merge pull request #15 from richardc/make_specs_more_robust

maint - make the spec tests a little more robust
(maint) Add ext/packaging to .gitignore
(maint) Don't require mcollective for all tasks

Because the test task is defined using an RSpec object, if rspec is installed,
many other libraries will also be loaded, which will cause failures on builders
trying to use the rake tasks. This commit lessens the risk by trying to load
mcollective, and rescuing the load error. If mcollective successfully loaded,
we continue to try to load the other libraries. This could still fail, but
failure is less likely. Really, the test task definition needs to be completely
reworked.
(maint) Add packaging tasks and hooks

This commit adds standard packaging tools and hooks to load those tools.
(maint) Add packaging data files

This commit adds the data files that drive packaging to ext. This includes
project_data.yaml and build_defaults.yaml.
(maint) Add packaging artifacts for debian and redhat

This commit adds packaging artifacts for debian and redhat. This will allow the
plugin to be built using our standard toolset. The artifacts have been written
so that the packages behave equally to the currently produced
mcollective-pluginpackager packages.
(maint) spec.opts is deprecated in favor of .rspec
(maint) Refactor test task to use standard rake notation

Previously the test task was defined using rspec::core::rake_task, which
evaluates all of the code and loads needed libraries. Unfortunately, this means
that even if someone weren't intending to run rake test, they would need all of
the test dependencies. This commit addresses that by updating the test task to
shell out to rspec, passing along the test pattern. This allows the needed
libraries to be loaded only when required, and not when evaluating the
Rakefile.
maint - work around MCOP-12 by sorting specs

This commit forces asciibetical loading of the spec tests.  As noted in MCOP-12
this is due to the code dynamically compiling itself.

Once MCOP-12 is resolved we should revert this commit.
Merge pull request #12 from richardc/mco-160

MCO-160 Add standard packaging to mcollective-puppet-agent