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.


I'm not sure this is sufficient; is some kind of rollback at the remote end necessary?