Remove thread locals

Hi David,

with regard to #97 is that how you meant it?
Are there any algorithms that evaluate the function in parallel?
If so, it might make more sense to use a SynchronizedMap[T, Double] so that the different threads don't overwrite the cache of all others.
If not, you could cherry-pick just 3bdaeb44285d12b46104f1256ea679fec845b143

Best
  Martin