Gelu10
Introduce `GeLU10(x)` activation which behaves exactly like a raw GeLU but keeps output values within [-10, 10] range.

This is especially useful when quantizing neural network using GeLU activations, because it allows to map 2 negatives values within the GeLU spectrum.

Please see https://arxiv.org/abs/2004.09602 (Appendices D  "Novel activation functions"): 
> GELU has an output range of [−0.1700, ∞]. This
poses a challenge for uniform quantization as it should represent both small negative values and large positive values [...] However, if we restrict the range to [-10,10] then two negative values can be represented.

![image](https://user-images.githubusercontent.com/2241520/154236552-9ea2aaa7-d14b-4b14-924c-2bd4218c6243.png)

_The documentation is not available anymore as the PR was closed or merged._<|||||>Can this be used right now with some existing pretrained models?<|||||>@LysandreJik, yes it can be used anywhere there is a `gelu` call. 

The purpose of this operator is mainly to be used when doing the calibration phase for quantization, to avoid having to map the whole GeLU's range.

Other than this, not so much interest. 

At first, I was looking at putting this into optimum, but `transformers` has all the logic to handle this quite easily, wdyt?<|||||>It will need to be rebased/adapted to include the class the new activation function.
Plus the docstrings should be in our format ;-)<|||||>Sure, will go through it over the weekend 👌🏻 <|||||>@sgugger If you can validate regarding the doc? 🙏🏻 