lib/policies/reconnection.js
function ExponentialReconnectionPolicy(baseDelay, maxDelay, startWithNoDelay) {
  this.baseDelay = baseDelay;
  this.maxDelay = maxDelay;
  this.startWithNoDelay = startWithNoDelay;
}
function ExponentialReconnectionPolicy(baseDelay, maxDelay, startWithNoDelay) {
  this.baseDelay = baseDelay;
  this.maxDelay = maxDelay;
  this.startWithNoDelay = startWithNoDelay;
}
A reconnection policy that waits exponentially longer between each
reconnection attempt (but keeps a constant delay once a maximum delay is reached).
<p>
A random amount of jitter (+/- 15%) will be added to the pure exponential delay value to avoid situations
where many clients are in the reconnection process at exactly the same time. The jitter will never cause the
delay to be less than the base delay, or more than the max delay.
</p>
@param {Number} baseDelay The base delay in milliseconds to use for the schedules created by this policy.
@param {Number} maxDelay The maximum delay in milliseconds to wait between two reconnection attempt.
@param {Boolean} startWithNoDelay Determines if the first attempt should be zero delay
@constructor