20661 - Util#versioncmp fails in some cases

The versioncmp helper failed to correctly compare 1.2.10 and 1.2.8
but this has already been fixed in Puppet where we got our logic
from first so we're just grabbing whats in Puppet now to resolve
this
Docs: Add new deployment and configuration docs

This commit adds:

- index page for deploy docs
- Installing MCollective page
- standard deployment getting started guide
- overview of roles and components
- middleware options index
- minor fixes to the ActiveMQ config reference
- Minor fixes to the server config reference
- client config reference
- plugin deployment guide
- Vagrant demo page

Additionally, it makes the following changes:

- Delete content of EC2 demo page
- Mention using registration as a heartbeat (server config and standard deployment)
- Add deprecation warning and links to the old getting started guides
  (and delete the most outdated one entirely.)
20592 - Release 2.2.4

Update release notes and changelog for 2.2.4
19905 - mcollective set timeout header on reply messages

MCollective at present uses real queue named in a temporary fashion to
handle replies this is due to some issues with temporary queues in
ActiveMQ

ActiveMQ is configured to delete unused queues after some time - 30
seconds in our recommended config - but this only works when those
queues are completely empty.

JMS messages have a message time stamp and a message expiry header which
lines up with the creation time in MCollective and the TTL set on the
message object but we never set these headers allowing ActiveMQ to clear
out unconsumed expired messages and so in some cases we find these
temporary queues stuck requiring human intervention.

This commit adds the needed headers allowing ActiveMQ to do proper
housekeeing of its internals
19905 - mcollective set timeout header on reply messages

When publishing messages over RabbitMQ this will set a TTL
on the messages matching mcollective message ttl plus a few
seconds

The kind of problem here is different than with ActiveMQ
since we're concerned with messages sat in the per-node
queues rather than reply queues but its related and worth
fixing here
19905 - mcollective set timeout header on reply messages

Changelog