In the heartbeat algorithm, compensate for any abrupt jumps forward in the system clock.
This can sometimes be an issue in virtualized environments if time synchronization between
the host OS and guest OS is misconfigured.

In addition, fix the `clusterTimeDiff` calculation so that system clocks drifting in any
direction do not cause spurious timeouts.  Previously, `clusterTimeDiff` would converge
to zero, so that converging clocks were compensated but not diverging clocks.

Finally, include `cluster.timeDiff` in the `HealthMonitor` logging.
Merge pull request #4226 from atlassian/make-heartbeater-resilient-to-clock-drift

In the heartbeat algorithm, compensate for any abrupt jumps forward in the system clock.