Add ESMFold
cc @sgugger @LysandreJik @tomsercu @rmrao @nikitos9000

Opening a draft PR because deadlines are getting tight and I'd like to get everyone on the same page!

What's done:
- [X] Create a minimal port of `openfold`
- [X] Port ESMFold as `EsmForProteinFolding`
- [X] Update weight conversion scripts to port ESMFold weights from original repo
- [X] Update config formats to support ESMFold models

TODO:
- [x] Resolve small output discrepancies in ESM-2 stem that cause differences in final protein predictions
- [x] Add documentation
- [x] Add testing
- [x] Ensure everything is importable from the `transformers` root 
- [x] ~Add an auto class for protein folding?~
- [x] Ensure non-folding ESM classes can be loaded with AutoModel
- [x] Remove some `openfold` functions/methods that aren't being called
- [x] Clean up the `openfold` port into a single dir/file
- [x] Ensure all `openfold` code is correctly licenced
- [x] ~Add auxiliary method(s) to convert the outputs into bio file formats like `pdb`~
- [ ] Reupload ESM checkpoints with the new formats
- [x] Upload ESMFold_v1 checkpoint
_The documentation is not available anymore as the PR was closed or merged._<|||||>Merging for now, there are still a few improvements needed (example in a docstring for instance) but they can go in their own PRs :-)