Fixes #294 by using Thread.getId() method instead of System.identityHashCode() to uniquely identify the JVM thread

According to #294, when using Java 7 the consumers of a workQueue or threadPoolExepcutor dispatcher based streams
receveied more calls than exepcted (some objects were dispatched to the consumer twice).
The reason was the AbstractMultiThreadDispatcher.allocateRecursiveTask() method where the System.identityHashCode(Thread.currentThread())
sometimes returned the same hash for different threads.
This fix replaces System.identityHashCode(Thread.currentThread()) with the Thread.getId() (available since JDK 1.5) to uniquely identify a JVM thread.