Add setters by type of args to TrainingArguments
# What does this PR do?

This PR introduces setters that group some of the `TrainingArguments` by type, to make this class easier to use. This was suggested in #20831 

If the idea is of interest, I'll create more of those to cover all training arguments.
_The documentation is not available anymore as the PR was closed or merged._<|||||>@MKhalusova this is a way to split the documentation of training arguments (currently 96 :grimacing: ) by splitting them in groups, could you have a quick look?<|||||>I really like the idea of splitting 96 arguments into reasonable chunks. Looking at the examples, I am not sure how it would look when you use more than one group. 
Is it going to look something like this? 

```
args = TrainingArguments("working_dir")
args = args.set_training(learning_rate=1e-4, batch_size=32)
args = args.set_logging(strategy="steps", steps=100)
args = args.set_evaluate(strategy="steps", steps=100)
```
<|||||>Yup, or chained directly if that's more your style:
```py
args = (
    TrainingArguments("working_dir")
    .set_training(learning_rate=1e-4, batch_size=32)
    .set_logging(strategy="steps", steps=100)
    .set_evaluate(strategy="steps", steps=100)
)
```<|||||>I think this should make the docs much more readable and might make the code more readable as well. 