Timeout improvements

configurable io and idle timeouts
raised default io timeout from 3s to 7s
wait on connection failure exponentially backs off starting
  at 1s and doubling per-failure, up to a limit of 32s.

Change-Id: I2ced0f0d2f1d9cfcda8c4fb451ddaae1ace4f18f