13028 - Division by zero when no agents are discovered in verbose mode

This primarily fixes a bug introduced while working on #12865.  We
showed the progress bar earlier there to improve the user experience but
we didnt do sufficient checks to avoid showing it when nothing was
discovered.

Also fix some behavior on the rpc application where it would print the
call stats showing 0/0 host succeeded which was confsing.
13040 - When using pool connection syntax the stomp and activemq connectors does not set the connection to reliable

Reliable connection in stomp means the gem takes care of retrying,
resubscribing etc.  This is essential to proper operation of mcollective
but we relied on defaults present in the gem for this setting.

We now explicitly set this behavior.
13040 - When using pool connection syntax the stomp and activemq connectors does not set the connection to reliable

Update tests
13020 - Handle Stomp 1.2.0 Stomp::Error::NoCurrentConnection better

While adding Stomp 1.1 support to the Stomp gem upstream tightened up
various connection handling issues in the gem.  It now raises an
exception when you try to receive on a disconnected socket so we're
handling that on our side.

For gem 1.2.0 there will be a complete lack of logging when this happens
but thats a bug in the Stomp Gem, I've also sent a pull request upstream
to address that issue.
13020 - Handle Stomp 1.2.0 Stomp::Error::NoCurrentConnection better

Allow the test to run on machines with older stomp gems
13064 - implemented_by scripts should have a conventional place

We support actions in external commands but do not provide a canonical
place to put them.

Having a known convenstion means the plugin packager can be programmed
to deal with these files automatically.

After this commit if you specified a implemented_by script like:

   implemented_by "foo.sh"

The script will be searched for in all the libdir in
libdir/agents/agent_name/foo.sh till it finds it. If a full path is
supplied the full path will be used instead.
13064 - implemented_by scripts should have a conventional place

Update changelog
13105 - MC::UnixDaemon should remove the pid file it created on exit

The daemon when configured to write a pid would not remove it when it
was done.

Rather than try to catch all exceptions specifically and install trap
handlers with exit logic sprinkled all over we now have a single rescue
block in the daemon that handles that and the UnixDaemon class will
remove the pid file when its done.
maint: remove executable flag from rb files that should not have it
13165 - support new ssl specific logging callbacks in stomp 1.2.1

Add on_ssl_connecting and on_ssl_connected logger callbacks for
stomp gem >= 1.2.1
13207 - receive failed: SSL_read:: no start line errors when using SSL or AES security plugins and Stomp+SSL

Ruby < 1.9.3 had a bug where it does not correctly clear the
queue of errors while reading a key.  It tries various ways
to read the key and each failing attempt pushes an error onto
the queue.  With pubkeys only the 3rd attempt pass leaving 2
stale errors on the error queue.

In 1.9.3 they fixed this by simply discarding the errors after
every attempt.  So we simulate this fix here for older rubies
as without it we get SSL_read errors from the Stomp+TLS sessions

We do this only on 1.8 relying on 1.9.3 to do the right thing
and we do not support 1.9 less than 1.9.3

See  http://bugs.ruby-lang.org/issues/4550
13207 - receive failed: SSL_read:: no start line errors when using SSL or AES security plugins and Stomp+SSL

Update changelog
13285 - change default logging for clients

Previously we discarded all logging on the client by default, we now
default to using the console logger at level warn.

The reason for this change is to prepare for some upcoming changes wrt
SSL setup and recent changes in the Stomp gem that makes it easier to
report back to the user in the case of failures
First attempt at mco plugin application with package action
- Cleaned up plugin application parameters
- Added output to plugin application, info action
- Added Gem package plugin
- Added Gem erb template
- Refactored plugin application
- Added info action to gem package plugin
- Removed unused instance vars from ospackage class
- Fixed gem package plugin. It now creates the correct directory structure in rubygem dir.
- Changed package_information() output format.
- Empty dirs no longer get packaged.
- Moved @override rpcoptions in plugin.rb to Application class. (See MCollective ticket #12859)
- Renamed output flag to ptype
- detect missing osfamily fact
- added usage to --help
- detect old versions of fpm
- change packagename formats. remove spaces and caps
- moved ddl to client from agent package
- renamed ptype flag to format
- creating gems now displays output
- added package type information to package descriptions
- cleaned up info output
- Added tests for Plugins and PluginPackager::Base