Fix thread/connection leak in RabbitMQ::MarchHare

On a non-connection-fatal exception (for example, if the queue was not found),
the error handling code would attempt to reconnect without closing the old
connection first. This resulted in hundreds of simultanious open connections,
tying up rabbitmq resources and causing local load problems as well,
with thousands of idle threads.