CLJ-1338 - make Murmur3 public

Signed-off-by: Stuart Halloway <stu@cognitect.com>
CLJ-1328: Make several Clojure tests independent of hash function

Signed-off-by: Stuart Halloway <stu@cognitect.com>
Test exception propagation out of r/fold CLJ-1058

Signed-off-by: Stuart Halloway <stu@cognitect.com>
Allow Exceptions to propagate out of fold tasks CLJ-1058

Before this change, an java.lang.Exception thrown while processing by a
single task is caught and ignored. Infinite recursion comes from falling
out of the "if(tasks.size() == 1)" block into the following code that
splits multiple tasks.

This change adds a call to Util.sneakyThrow(e) in the catch block.

Demonstration of the problem, from Tom Jack:

user> (require '[clojure.core.reducers :as r])
nil
user> (r/fold (fn ([]) ([ret k v] (+ 3 "foo") ret))
              (into {} (map (juxt identity identity) (range 10000))))
StackOverflowError   clojure.lang.Numbers.add (Numbers.java:126)

Signed-off-by: Stuart Halloway <stu@cognitect.com>