STASHDEV-7788 Remove the code to send CallTimeoutException responses
from remote operation threads back to the caller to indicate timeout.
These are expensive to deserialize (especially when the contents of
the CallTimeoutException are not used for anything anyway), and when
the queue is long can lead to an indefinitely growing queue of retried
invocations.
STASHDEV-7788 Removed incorrect assumption in `WaitNotifyServiceImpl`.
If a waitable operation has timed out, it does NOT mean it can be
automatically expired with `CallTimeoutException`.
STASHDEV-7788 Removed risky `isCallTimedOut` calculation which depends on the accuracy of
`ClusterService.getClusterTime`.  This is no longer used as there is callTimeout logic
already in `BasicInvocationFuture.waitForResponse`.
STASHDEV-7788 Fix for `LockTest.testLockInterruption`.
Note that there is still a fundamental race condition in the test that cannot easily be
eliminated, as an `interrupt`ed `tryLock` call may still throw `InterruptedException` even
though the remote `LockOperation` is executing and may ultimately succeed.
STASHDEV-7788 Replaced `InvocationTest.testWaitingIndefinitely` with `testWaitingWithExplicitTimeout`.
The whole premise of the test, that a call timeout should interrupt indefinite `lock` calls is
completely wrong, and illustrates the confusion over what the "call timeout" actually means in
Hazelcast.  Changed this test to use a `tryLock` with explicit timeout.
STASHDEV-7788 Fix `InvocationTest.testInterruptionDuringBlockingOp2`.  Now that
we correctly throw `InterruptedException`, we can actually honour the contract
of `BlockingQueue<E>.poll`.
STASHDEV-7788 Add logging for the situation where we process an "expired"
operation that would have been aborted with `CallTimeoutException` under the old code.
Also record some statistics about operation latencies in the `HealthMonitor` logging.
STASHDEV-7788 Slight rearrangement in sequence of calls, should make almost no difference
except if any of the methods calls throw exceptions in future.
Merge pull request #18 from atlassian/STASHDEV-7788-timeout-ops-on-caller-node

STASHDEV-7788 Remove the code to timeout remote operations on the remote node