this uses a verification requests as emitted by the js-sdk with
the `crypto.verification.request` rather than a verifier as emitted
by `crypto.verification.start` as this works for both to_device and
timeline events with the changes made in the js-sdk pr.
as we will have 2 tiles, and both need to track
the status of the verification request, I've put
the logic for tracking the state in this helper class
to use from both tiles.