Kb/eviction fixes

Followup to #2769 (rebased to master)

Here are a few fixes to the eviction algorithms in BoundedConcurrentHashMap, in order of importance.

(1) Fixes a (nearly) endless loop that killed our production servers.
(2-3) Fix minor bugs in cache hit processing.
(4-6) Minor optimizations and code cleanup.
(7) A side effect of this is that it (mostly) separates eviction algorithm and hash map implementations, so its a step towards allowing arbitrary eviction algorithms.

Cheers,
Karsten