Make ClockImpl abstraction public to allow external Clock implementations to be used.  Introduced new com.hazelcast.clock.impl system property.
Added test to cluster behaviour when system clock changes backward / forward.
When system clock jump is greater than 'maxNoMasterConfirmationMillis', master incorrectly kicks out some members because of master confirmation timeout. Master confirmations should be reset when a huge clock jump is detected to avoid this.
No need to send 'master-time' via partition table publish, it's not used anymore.
Merge pull request #4326 from mdogan/heartbeat

Reset master confirmations when system clock changes significantly