Summary:
Lazy initialization of the `YsqlAdvisoryLocksTable` object requires too much of tangling code. It is much easier to use `std::shared_future<client::YBClient*>` instead of `client::YBClient&` in the `YsqlAdvisoryLocksTable`'s constructor. Like other classes does: `PgTableCache`, `CDCStateTable`.
**Note:** In context of this diff some additional improvement is performed:
- created helper function `ValueAsFuture`
- removed redundant constructor from `CDCStateTable` (it breaks thread safety)
- included missed headers
Jira: DB-14603
Test Plan: Jenkins
Reviewers: pjain, hsunder, bkolagani, yyan, xCluster
Reviewed By: hsunder
Subscribers: ycdcxcluster, ybase, yql
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D40808