Exponential backoff on reconnect

This adds exponential backoff to the reconnect plugin. It waits an increasing period of time after each failure, capped at 5 minutes.