Replace swish with silu
This pull request replaces the swish with the silu. Note "silu" still maps to tf.keras.activations.swish not tf.keras.activations.silu for tensorflow since the silu is in the tensorflow nightlies, but not in the stable version of tensorflow.

This fixes https://github.com/huggingface/transformers/issues/8100

@LysandreJik
Thanks @TFUsers for this important PR.

As far as I know the activation names are also directly inside the the `config.json` files in the model hub. @sgugger @LysandreJik  Do we plan to update all of them?<|||||>Very good point @jplu. We can't change those names in the config hosted online because it wouldn't be backward-compatible, so we need to still accept the old names (without documenting the behavior). So we should leave the old `swish` in the dictionaries `ACT2FN`.<|||||>It looks like everything passes (ignoring "src/transformers/activations.py:52:5: F811 redefinition of unused 'silu' from line 40").<|||||>> I guess the cleanest approach in that regard would be to remove the definition of ACT2FN in these files, and instead import the centralized ACT2FN from the activations files

Line 30 of `modeling_bert.py` is
`from .activations import ACT2FN`

Are the main concerns resolved?<|||||>You're right, I was checking in the wrong file. Could you fix the code quality issue related to the redefinition of `silu`? You can follow what's done with the `gelu` method, by renaming the `silu` method to `_silu_python` and doing an if/else statement according to the torch version.

Also that version check (same with the `gelu`) doesn't seem robust at all. Could we use the `packaging` util to do something better? Something like:

```py
from packaging import version

if version.parse(torch.__version__) < version.parse("1.4"):
    ...
```<|||||>Thanks!