ServerClient depends on AsyncServerClient. I'd prefer for it to depend on IAsyncDatabaseCommands but there public and internal methods that are not on any interface(s) that are dependend on.
Move props below ctor
Add transformer param to DirectGetAsync
Delegate FailoverStatusChanged to inner AsyncServerClient
Delegate replication informer to inner async server client.
Delegate internal ExecuteWithReplication to inner asyncSeverClient
Delegate DirectGet to inner AsyncServerClient
Remove unused methods
PutIndex delegated to AsyncServerClient (as opposed to overload)
Delegate ExecuteWithReplication to AsyncServerClient
Clean up ServerClient ctor such that is only depends on AsyncServerClient
Rename member asyncDatabaseCommands -> asyncServerClient.