[Deepspeed] adapt multiple models, add zero_to_fp32 tests
Massive fixing and testing of different models under Deepspeed, followed up by a recovery of full fp32 weights and various other related tweaks.

zero_to_fp32 isn't currently being tested on deepspeed side (as I didn't write any tests), so testing it here and while at it starting to include more and more models instead of waiting for users to discover that this or that doesn't work.

This PR:

- [x] adds multiple model tests which include a short training and zero_to_fp32.py fp32 weights recovery from the shell
- [x] docs update to the new `zero_to_fp32.py` syntax and new API
- [x] adds a test for `load_state_dict_from_zero_checkpoint` (added in deepspeed)
- [x] fixes multiple models to work with deepspeed
- [x] removed some deepspeed craft from `modeling_wav2vec2.py` as it's no longer needed

TODO:

 Dependencies to resolve:

- [x] https://github.com/microsoft/DeepSpeed/pull/1181
- [x] https://github.com/microsoft/DeepSpeed/pull/1202 - which will also fix https://github.com/huggingface/transformers/issues/12403 marian has the same issue (the test is already here). 
- [x] new deepspeed release after the above PRs are merged (probably 0.4.3)

Fixes: https://github.com/huggingface/transformers/issues/12403

@sgugger, @LysandreJik 
