Two new features: maxInterval & randomize

1. Each time we get a failure, the intervall will be multipled by a factor
to make it longer, and the interval will be limited under `maxInterval`
if it exists (It will be set to maxInterval before the multiplying, so
the real limitation of interval is maxInterval * 1.5).

2. If randomize is true, the multipying factor is a random number between 1
and 1.5.

3. I have already bump the version in ``package.json``