This PR adds an option to `config.json` which will make the js-sdk use the rust crypto sdk, instead of the libolm implementation.
To use it, you need to add something like this to `config.json`:
```
"features": {
"feature_rust_crypto": true
},
```
We don't (yet) have any way to migrate a device between implementations, so the setting that was in use when you log in is persisted to the device; it is *visible* via the labs section but cannot currently be changed.
This is part of https://github.com/vector-im/element-web/issues/21972, and enables the functionality added to the js-sdk in https://github.com/matrix-org/matrix-js-sdk/pull/2969.
* Fix MatrixClientPeg.userRegisteredWithinLastHours so that it works
* Try fixing end-to-end test + add case for New search beta
* Remove end-to-end test case for Search beta toast as it only shows up after 5 minutes
* Revert to localStorage based solution + non-inverted logic + test including time advancement