22114 - Add a timeout option for system commands

This commit adds a timeout option to `MCollective::Shell.new` and
`MCollective::RPC::Agent.run`.

Previously in case of a stuck child process the systemu guardian thread
was just waiting on the childpid forever, even after the executing agent
reached its timeout. It is now possible to use the timeout parameter to
force termination of the chilld proccess.

The timeout can be specifier in seconds or if the symbol :on_thread_exit
is given, the child process is killed when the executing parent thread exits.
Merge pull request #126 from ploubser/feature/master/22114

22114 - Add a timeout option for system commands
17067 - Redo the packaging of mcollective

Update changelog
22114 - Add a timeout option for system commands

Update changelog
23090 - Possible thread leak in Shell

In the past when Shell was called from a long running thread the guard
thread spawned by systemu would be blocked in a sleep forever.

This commit attempts to kill the guard thread after systemu has
finished.
Merge pull request #127 from ploubser/bug/master/23090

23090 - Possible thread leak in Shell
23090 - Possible thread leak in Shell

Update changelog
12597 - add a modulepackage packaging target

This patch adds a modulepackage target to the mco package builder.

Usage:

   $ git clone https://github.com/ploubser/mcollective-puppetdb-discovery
   $ cd mcollective-puppetdb-discovery
   $ mco plugin package \
         --format modulepackage \
         --vendor puppetlabs

This will create a module for the forge named
puppetlabs-mcollective_puppetdb_discovery containing the source
code and the class mcollective_puppetdb_discovery::discovery

This is somewhat cargo-culted from the RPM packager