[logging] implement warning_advice / TRANSFORMERS_NO_ADVISORY_WARNINGS
This PR implements the idea of advisory logger warnings as discussed at https://github.com/huggingface/transformers/issues/14455

The main ideas is to enable users to turn some logger warnings off when they re-run the same program again and again and either don't care or can't do something about those warnings. Additionally, this is essential for multi-node setups where the same warning gets replicated for each process and with 512 processes it's a lot of identical warnings.

This PR:

- adds a new logger method `logger.warning_advice` which works just like `logger.warning` but which is a no-op if the env var `TRANSFORMERS_NO_ADVISORY_WARNINGS=1` is set
- adds tests
- updates docs
- replaces one warning for now - need to replace more.

TODO:

- decide which warnings should always remain warnings and which can be switched to advisory ones, this can also be a gradual process. We can also invite input from the community.

- Once completed I'd also propose to replicate this to `datasets` as most of the time repeat uses and the warnings are just as non-informative and ignored there as in `transformers`.

Fixes: https://github.com/huggingface/transformers/issues/14455

@sgugger, @LysandreJik, @patrickvonplaten, @patil-suraj
Looks good to me! I'm wondering whether we actually need a new logger function `logger.warning_advice` or whether it might make sense to simply overwrite `logger.warning` since 100% backward compatibility is kept <|||||>> Looks good to me! I'm wondering whether we actually need a new logger function `logger.warning_advice` or whether it might make sense to simply overwrite `logger.warning` since 100% backward compatibility is kept

You're thinking about having a mechanism of turning all warnings off, aren't you?

If so this is already available via logger's set verbosity.

If we are going to change all warnings to advisory warnings then this feature is pointless. 

My thinking was that some warnings are a must whereas others are either border-line `info`-level or they are not close to `error` level.

Perhaps we need to have a closer look at the types of warnings we have right now. If there no clear sub-division of which warnings are essential and which aren't, then this feature won't help.<|||||>I'm personally ok with the `warning_advice` which is supposed to be different to `warning` - for me it's good to merge<|||||>Ok for me!