improve reconnect

rename reconnect to reconnectNow
  * reconnect immediately
  * function returns failure mode on error

add reconnect function
  * retries when reconnect failes
  * waits exponentially increasing amount of seconds between attemps
  * returns last encountered error when all attempts fail