[testing utils] get_auto_remove_tmp_dir more intuitive behavior
Author: stas00
Pull request: yes

Now that I have been heavily using `get_auto_remove_tmp_dir` for a while, I realized that one of the defaults isn't most optimal and we had to type too much for what we need most of the time.

tldr: 99% of the time when debugging we want the tmp dir 
1. to be empty at the beginning of the test 
2. to be left alone after the test

This PR changes the behavior of `get_auto_remove_tmp_dir` to simplify things greatly and require much less typing.

Before this PR  when debugging a test we had to do this:
```
-        output_dir = self.get_auto_remove_tmp_dir()
+        output_dir = self.get_auto_remove_tmp_dir("./xxx", before=True, after=False)
```
Now, all you need to do is:
```
-        output_dir = self.get_auto_remove_tmp_dir()
+        output_dir = self.get_auto_remove_tmp_dir("./xxx")
```

You can still override `before` and `after` should you need to, but the main change is that if you pass a hardcoded path - you are most likely wanting to debug and see the results of the test in an easily locatable and repeatable location, and ensuring that dir is empty before the test.

Done!

@LysandreJik, @sgugger 

Comments:
> For example, if someone were to use `self.get_auto_remove_tmp_dir()` but didn't like where the tmp directory was set, they would specify the directory. They then re-run their code, but the behavior now has changed, even though they only updated the path. That seems unexpected and unwanted to me.

You're making a valid point, @LysandreJik and that's how I coded it in first place, except it lead to needing to type out many arguments. So I'm trying to make it smarter based on the experience of using it.

1. I'd ask you - what do you mean specifically you don't like where it's located. Since by default it gets wiped out anyway what difference does its location make? The only time you'd want to set it to a desired location is when you want to see its contents - therefore, you will not want it wiped out ;) Does my thinking process make sense?

   If however the temp mechanism is wrong (say it fails to create a tmp dir under /tmp/ - dir is full), then it needs to be dealt with on the system/shell level and redefine where `/tmp` is located or empty it since this is a system-level problem. It'd be wrong to try to solve it in this helper function.

2. The intention here is to make the debugging process as painless and quick as possible, so if the function behaves slightly differently than you'd normally expect from a function, but you use it all the time and you're well aware of its quirks and it saves you a lot of time and mistakes, then it serves the purpose, IMHO.

3. I'm totally open to other solutions as long as they lead to easier debug.

I don't know whether other devs have been using it and have some experiential input to share.


Great, thanks for explaining!

> I'd ask you - what do you mean specifically you don't like where it's located. Since by default it gets wiped out anyway what difference does its location make?

You're definitely right about this. Thanks for humoring me! Good to merge for me.

this one is ready to merge when you get a chance - thank you!

it should be safe to merge - the CI failures are unrelated