OperationToFuture must throw CancellationException on get() if cancelled.

The documentation for Future.get() requires the method to throw CancellationException if the Future was cancelled before the task completed. The Futures returned by OperationToFuture.toFuture() did not respect this contract. Now they do.
Merge pull request #959 from rickbw/toFuture-cancellation

OperationToFuture must throw CancellationException on get() if cancelled