* Use `ClientSessionDelegate` to ensure tokens are always updated.
Refreshed tokens on client restoration might not have been stored to disk if the token refresh happened before `RustMatrixClient` was built and the `ClientDelegate` was set in it.
Using `ClientSessionDelegate` should ensure the tokens refreshed callback is called at any point in time.
* Improve how assigning the Client works, fix docs
* Fix review comments