Integration of Daniel's BLOB manager

I rebased the pull request #107 of @warneke. Thanks for your work Daniel, the code looks really good. Since the master evolved a little bit from the version of the pull request, I'd like to have another pair of eyes looking over it. I tried to address the problem of old jar files which are no longer used by introducing a clean up task which regularly looks for those files. Due to this I had to extend the book keeping of the LibraryCacheManager a little bit.

I tested WordCount and Kmeans on the cluster with this version.
I think the logic with the lock map is dangerous, and most likely even not more efficient than a simple lock.

Previous versions of the LibraryCacheManager has errors that the locks were not always removed, leading to endless spins. Manual spinning is not required any more, the JVM does adaptive spinning that automatically degrades to queued waiting, which is better than anything we could hope to implement manually.

Since we do not expect congestion on this class, even the most simple global lock might do (and would be lightweight for the JVM).