Cleanup of client side for IMap.values() and IMap.values(predicate)

Improved readability of code for IMap.values() and IMap.values(predicate), e.g. variable names, newlines, moved declarations closer to usage, same order of parameters for similar methods, new sub-method. Sorted methods per superclass and/or from public to private. Added @Override to methods.

This PR is a preparation for the "unbound return values"-PRD for HZ 3.5. It may look a bit scary in the diff, but most of the work was done via IDEA (renaming, movement of methods) and all tests passed on my machine :)
Hrhr, I love final! You should not look at my pet project, you will cry!

But I read your blog and I know since June (from Chris) that you more or less agreed to use it just for member variables. Normally I would use it mostly everywhere in the code to mark immutable values. So I was just kind and tried to follow the (inofficial) coding guidelines.