Add YOSO
# What does this PR do?

This PR adds the YOSO Transformer model to the repository.

Paper: [You Only Sample (Almost) Once: Linear Cost Self-Attention Via Bernoulli Sampling](http://proceedings.mlr.press/v139/zeng21a/zeng21a.pdf)
Code: [Official code](https://github.com/mlpen/YOSO) 
Checkpoints: [Uploaded to hub](https://huggingface.co/uw-madison/yoso-4096)

In this paper, the authors introduce a an efficient self-attention mechanism based on Locality Sensitive Hashing. They also implemented custom CUDA kernels in their [code](https://github.com/mlpen/YOSO/blob/6000487d9cd8e34519aa47650011f458ca0db64c/encoders/backbones/efficient_attentions/yoso/yoso_v1/kernel.py#L15). I've incorporated this in the modeling file, but some code qaulity checks fail.

## Who can review?

@NielsRogge @patrickvonplaten 
Hey @novice03,

Thanks a lot for adding this complicated model! Looks super cool :-) Also great to see a revival of the LSH mechanism for long-range sequence modeling after Reformer.

Left a couple of suggestions above. It would be great if:

- We could remove the whole `use_cache` logic as the model is not able to use it
- Add one integration test with long inputs so that we can be sure that the model can process long inputs on a single GPU<|||||>Thank you for your feedback! I've pushed a few commits with the appropriate changes.
<|||||>Oh, I ran `doc-builder convert` on the file and assumed that it fixed everything. Turns out there were still some parts of the code that weren't converted. Should be fixed now.<|||||>Looks good for merge to me! <|||||>Thanks for all your work on this! Merging.