Simplify `RedisCommandExecutor` and `RedisConnection`
Motivation: `RedisCommandExecutor` was a complex and "wordy" name that was not 100% clear as to how it relates to other types. `RedisConnection` also has not had a strong use case shown for it to exists as a separate protocol - using up a great name for the "out of the box" implementation. Result: `RedisClient` instead of `RedisCommandExecutor` is more clear as to what it is, in Redis terminology, a communication client. `RedisConnection` as a concrete class provides an identifiable basic block for making connections to Redis. `RedisConnection` also saw some fixes to `close()` while having some names and comment blocks tweaked for updated naming.
Showing with 107 additions and 98 deletions