accelerate DDP integrate
### What does this PR do?
1. Move DDP preparation to Accelerate. 
2. This PR should be merged after #23148 
3. No user-facing change. Now, user can use `accelerate launch` for DDP and MP, e.g.,
```
accelerate launch --num_processes 2 --multi_gpu --mixed_precision "bf16" run_glue.py   --model_name_or_path bert-base-cased   --task_name $TASK_NAME   --do_train   --do_eval   --max_seq_length 128   --per_device_train_batch_size 16   --learning_rate 5e-5   --num_train_epochs 3   --output_dir /tmp/$TASK_NAME/ --overwrite_output_dir
```

Previous way of using torchrun works as usual:
```
torchrun --nnodes 1 --nproc-per-node 2 run_glue.py   --model_name_or_path bert-base-cased   --task_name $TASK_NAME   --do_train   --do_eval   --max_seq_length 128   --per_device_train_batch_size 16   --learning_rate 5e-5   --num_train_epochs 3   --output_dir /tmp/$TASK_NAME/ --overwrite_output_dir --bf16
```

Empirical nuances that I noticed:
1. As DDP uses Accelerate, the LR Scheduler is run `num_processes` per step. Previously, it was only run once per step. Because of this, lr decreases rapidly when using Accelerate's integration. In the above example, I had to increase LR from 2e-5 to 5e-5 to account for this behaviour in order to maintain the performance.
_The documentation is not available anymore as the PR was closed or merged._