MCO-198 Connectors should not suggest heart-beats if the installed gem cannot do them.

This commit adds a new helper to the rabbitmq and activemq connectors
`stomp_version_supports_heartbeat?` which allows us to branch more
of the behavior around if the gem can do heartbeating.  We then use
this to not prompt you to enable STOMP 1.1 heart-beats if the
installed gem cannot cope with it.

It also softens the suggestion from a WARN to an INFO, as the user might not
want to enable them, especially if they are using activemq < 5.9 (or whatever
version of rabbitmq adds mature support).
Merge pull request #166 from richardc/MCO-198

MCO-198 Connectors should not suggest heart-beats if the installed gem cannot do them.
maint - update example plugin metadata

Make the plugin metadata consistent with the released service agent
distribution.

A further enhancement to the docs could call out that name is expected to have
a certain format (/^[a-z]+$/) and that it's used by other components like `mco
plugin`
MCO-191 Log receipt and contents of non-MESSAGE frames

Under normal operations @connection.receive is expected to return a
Stomp::Message object containing a MESSAGE frame.  If we get some other frame,
or no frame at all we still pass that up the layers and decode it, which can
lead to some quite dense error messages from the security provider layer.

Here we change the behaviour of the activemq and rabbitmq connectors
a little, to log these frames of unexpected type at WARN level,
with an inspection of the message as a DEBUG message.
Merge pull request #167 from richardc/MCO-191

MCO-191 Log receipt and contents of non-MESSAGE frames
Update mcollective.init

In sh the argument -e throws an error.
Snapshot from solaris 10 manual
     -e file                 True if file exists. (Not  available
                             in sh.)
Update pkginfo

Correct the NAME from mcollective- to mcollective
+ delete the description in NAME
Update build

With Release param package name from mcollective doesn't confirm the Naming.
You can check the naming with chkcat

https://github.com/dex4er/pkgutil/blob/master/chkcat
Spelling error in activemq and rabbitmq connector plugins
Merge pull request #169 from fiddyspence/speeling_errer

Spelling error in activemq and rabbitmq connector plugins
Merge pull request #168 from Reamer/master

Update mcollective.init
(maint) Remove i18n bits from packaging

i18n was removed before the 2.4.0 release, but some remnants are left in
packaging. This commit removes the dependency from the client gem and also
removes them from the gem_excludes list.
Merge pull request #171 from haus/cleanup_i18n_pieces

(maint) Remove i18n bits from packaging
(MCO-192) Implement back-off at the connector level

This commit adds higher level for exponential backoff to the
connectors.  The STOMP gem's support for exponential backoff only
handles tcp-level failures.  Here we allow for protocol-level
issues such as incorrect credentials causing a disconnection.

In order to do that we add a new execption class, BackoffSuggestion,
and two specific exception classes derived from it that allow the
code that raises the error to make a suggestion about how long the
handler should wait before proceeding.  These two classes are
MessageNotReceived for when the connector is unable to receive a
message, and UnexpectedMessageType for when a message isn't of the
kind you were expecting.  For STOMP these map to connector.receive
== nil and msg.command != 'MESSAGE' respectively.

As part of this change to the flow we refactor the tests heavily to allow for
pluginconfig to be resolved in the initializer of the connector, as we use the
existing stomp gem keepalive settings for our own connector-level
`exponential_back_off` method.
Merge pull request #172 from richardc/MCO-192

(MCO-192) Implement back-off at the connector level
(MCOP-17) Add dist macro to Release field

When building the same plugin for multiple platforms at once, it is important
for the NVR of those packages to be unique for certain deployment platforms
like satellite. Previously the release did not include the dist macro, which
is the easiest way to ensure a unique NVR across platforms. This commit adds
the dist macro to the Release field. This means that instead of having an NVR
like mco-plugin-1.2.1-1 everywhere, now the NVR will be
mco-plugin-1.2.1-1.fc19, mco-plugin-1.2.1-1.el5, etc. The leading ? in the
macro means that if undefined, nothing will be printed, but it won't be an
error.
Merge pull request #173 from haus/ticket/master/mcop_17_add_dist_tag

(MCOP-17) Add dist macro to Release field
(MCO-215) Move exception classes from mcollective.rb to lib/mcollective/exceptions.rb
The exception classes are apparently a bit difficult to find where they are now located.
This commit creates a file called exceptions.rb, and moves the exception classes there.
(MCO-188) Update rubygems dependency to 1.3.7 or greater

Mcollective will fail to start if certain very old versions of rubygems are
employed. Those versions happen to be readily available on el5. Fortunately,
yum.puppetlabs.com offers version 1.3.7 of rubygems, which alleviates this
problem. This commit updates the requires for rubygems to specify a minimum
version of 1.3.7, to ensure that once installed mcollective will actually be
able to start.
Merge pull request #174 from MichelleJaeg/improvement/master/exceptions.rb

MCO-215