Refine `JedisConnectionFactory`
See #2745
Did a first review pass. The majority of changes impose a different style, resulting in code that requires more effort to read (harder to read) and that isn't an improvement.
I reworked this PR.
Please keep your comments objective and constructive.
If you re-read the commit message, you will notice several areas where the code was "improved". Cleaning up compiler warnings is a worthwhile improvement all by itself.
Finally, if you don't agree with the deprecation of the "protected" createTopologyProvider(..) (replaced by the new createClusterTopologyProvider(..) method). I don't have strong objections here. I just think it is better, more consistent from naming perspective. Our naming across the API is inconsistent, sometimes referring to the same types, but using different names.