Drain performance

When a drain is disconnected it currently takes at least 1 full seconds before the connection is re-established. For a high volume drain, this will almost guarantee log loss as the short buffer will be rapidly filled up. This branch attempts to resolve that behaviour by removing the forced hibernate and implementing an exponential backoff on re-connect behaviour.
If you're changing the backoff implementation, I might recommend using the `backoff` library. https://github.com/ferd/backoff/

It's something we had written for this but ended up not integrating right away because it wasn't broken in logplex.