JCache improved concurrency of CacheManager and CacheProvider impls improved #3564

This pull request send as separate from #3564 to preserve #3564 comments
Your pr approach makes it difficult for me to review the code (don't worry, I will still check it all). Your PR should be clean; if you are going to fix the concurrency problems, do that in a single PR. This PR is dirty and contains a huge chunk of work.