Allow BasicOperation to be interrupted

This fixes an issue encountered while interrupting a thread that was blocked
in IMap.tryLock. The resulting InterruptedException was caught in
BasicInvocationFuture, a flag was set and the future continued waiting for a
response.