ExecutorCompletionService implementation with DistributedTask

Implementation of http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorCompletionService.html which uses ```DistributedTask``` instead of inner non-serializable ```QueueingFuture``` and thus can be used with Hazelcast's executor.

Based on http://hg.openjdk.java.net/jdk6/jdk6-gate/jdk/file/ffa98eed5766/src/share/classes/java/util/concurrent/ExecutorCompletionService.java