rust-chg: reimplement ChgClientExt as ChgClient wrapper
ChgClient is no longer an extension trait because:
a. Client object is not consumed and recreated in future-0.3 world, which
unblocks writing a simple wrapper struct.
b. async fn isn't allowed in trait.
Overall, the API should become simpler.
Differential Revision: https://phab.mercurial-scm.org/D8446