[HF Trainer] [PyTorch FSDP] Add support for backward_prefetch, forward_prefetch, limit_all_gathers
### **Feature request**
Can we add Trainer support for the following [FSDP](https://pytorch.org/docs/1.13/fsdp.html?highlight=fsdp#module-torch.distributed.fsdp) features? `backward_prefetch`, `forward_prefetch` and  `limit_all_gathers`


### **Motivation**

`backward_prefetch`, `forward_prefetch` and  `limit_all_gathers` are important to achieve best performance when training at scale with FSDP.
cc @pacman100 <|||||>There are also 2 newly added[ sharding strategies](https://pytorch.org/docs/master/fsdp.html#torch.distributed.fsdp.ShardingStrategy) with PyTorch 2.0: `HYBRID_SHARD` and `_HYBRID_SHARD_ZERO2` that can impact performance. <|||||>The ^^ above fix only addes backward_prefetch and forward_prefetch options in fsdp, limit_all_gathers and other sharding strategies is not available with current pytorch version used in repo.<|||||>Hi! These two fixes still doesn't allow the following two strategies
> There are also 2 newly added[ sharding strategies](https://pytorch.org/docs/master/fsdp.html#torch.distributed.fsdp.ShardingStrategy) with PyTorch 2.0: HYBRID_SHARD and _HYBRID_SHARD_ZERO2 that can impact performance.

We could potentially enable it by adding two conditions here? https://github.com/huggingface/transformers/blob/118e9810687dd713b6be07af79e80eeb1d916908/src/transformers/trainer.py#L453-L458<|||||>> Hi! These two fixes still doesn't allow the following two strategies
> 
> > There are also 2 newly added[ sharding strategies](https://pytorch.org/docs/master/fsdp.html#torch.distributed.fsdp.ShardingStrategy) with PyTorch 2.0: HYBRID_SHARD and _HYBRID_SHARD_ZERO2 that can impact performance.
> 
> We could potentially enable it by adding two conditions here?
> 
> https://github.com/huggingface/transformers/blob/118e9810687dd713b6be07af79e80eeb1d916908/src/transformers/trainer.py#L453-L458

Yes, I will open a PR shortly.