Implement ExpQueue optionally calling callbacks when it discards
elements because they are expired.
Fix memleak in messaging channel.

publish() method of the RabbitMQ client returs a Deferred which shall
fire when the message is passed to the server. If the connection was never
established the Deferreds generated where accumulating, even though the
messages to be published expired long time ago. The fix involves using
callback provided by ExpQueue to cancel the awaiting Deferreds.