[autoformatters] wrapping destroying items/lists
# 🚀 Feature request

Would it be possible to make the auto-wrappers respect items/lists?

e.g. ended up with:
```
        """
        number of training steps is either 1. args.max_steps if --max_steps > 1 2. else derive from dataset if we can
        get its size
        """
```
not only it's broken, it's unreadable.

The original was:
```
        """
        number of training steps is either 
        1. args.max_steps if --max_steps > 1 
        2. else derive from dataset if we can get its size
        """
```

Ideally it should not remove new lines before bullets */- and numbers 1. 

I also am not sure why there is a need to merge lines when the writer meant them to be shorter. I get the shortening, but why can't short lines be left alone. Which would be the case in this example. It looks like the only way I can enforce readable content is to inject paragraphs.

Thank you!

@sgugger 
The styling script does indeed break your list in this instance, which is kind of a bug that is a feature instead. Let me explain. If you use sphinx to convert this docstring to HTML, here is the result that it will produce:
![image](https://user-images.githubusercontent.com/35901082/103658226-ef827800-4f38-11eb-9388-7a311b30e00d.png)
So the styler is really only showing you in advance there is going to be a problem with your list when putting everything in the same paragraph.

To avoid the breaking (and properly rendering your list in the docs), you have to add a new empty line:
```
        """
        number of training steps is either 

        1. args.max_steps if --max_steps > 1 
        2. else derive from dataset if we can get its size
        """
```

I know it's a bit annoying for docstrings that are just there as internal documentation and not really designed to be shown in the main documentation, but the script can't guess which docstrings to check and which not...

> I also am not sure why there is a need to merge lines when the writer meant them to be shorter.

Again, this will be shown as one paragraph in the actual documentation. If you want to keep lines separated, they need to have an extra new line in-between.<|||||>Thank you for explaining that it is the sphinx that is lacking.

Could the autoformatter detect such situations and fix that so that it remains a list by inserting a new line, rather than unwrapping the whole thing?

If such a parser would be complicated we could make it easier by having a stricter format. Usually, in English a proper list is preceded by a colon as in:
```
Here is what you do:
1. ....
2. ....
```
So `r':\s*[\r\n]+\s+(\d+\.|[\-\*] )'` would match 3 types of lists.