snf-common: Suport 'Queue TTL' in AMQP clinet

Extend the AMQP clients to support RabbitMQ 'Queue TTL' extension, by
passing the 'x-expires' argument when declaring a queue. This argument
controls for how long a queue can be unused before it is automatically
deleted.
snf-common: Support 'no_ack' in AMQP clients

Extend the Synnefo AMQP clients to support consuming from queues without
requiring acknowledgments.

Also, add the missing 'exclusive' argument in 'AMQPHaighaClient'.
gtools: Make the eventd send heartbeat messages

Make the 'snf-ganeti-eventd' daemon to send heartbeat messages which can
be used to check that daemon is working correctly, i.e. that is watching
the Ganeti queue and that it can send messages to the AMQP broker. The
daemon is triggered to send a heartbeat message by setting a special tag
to the Ganeti cluster in 'dry-run' mode.

Heartbeat messages are send with the 'eventd.heartbeat' routing key.
cyclades: Improve snf-dispatcher's help message

Add a description to snf-dispatcher's help message and improve the help
message of some options.
cyclades: Tool to check Cyclades update path

Create a tool to check the status of Cyclades update path, which
includes Ganeti, AMQP, snf-ganeti-eventd and snf-dispatcher. The tool is
created as part of the snf-dispatcher and can be used by passing the
'--status-check' option.

The tool sends a 'status-check' message to the running snf-dispatcher
process (via AMQP) and then waits to get the status report from an
exclusive queue. Respectively, the snf-dispatcher uses Ganeti RAPI
client to add a special tag to each Ganeti cluster (in dry-run mode),
which will trigger snf-ganeti-eventd to send a heartbeat message to the
AMQP broker. Dispatcher collects all these message and sends the status
report back to the tool that triggered the status check.

Refs: #5173