Use PyTorch's GELU activation
## 🚀 Feature

PyTorch 1.2 provides a built-in, GPU-accelerated GELU function at `torch.nn.functional.gelu`. Reading through the merged pull request (https://github.com/pytorch/pytorch/pull/20665) it seems that this is optimised for CUDA, too. Therefore I would propose trying to import the built-in gelu function first, and use the back-off gelu definition if it's not found for torch < 1.2.

## Additional context

I started _very_ basic changes over at https://github.com/BramVanroy/transformers/tree/pytorch_gelu by changing the gelu definition in e.g. BERT to something like

```python
def gelu(x):
    """ Original Implementation of the gelu activation function in Google Bert repo when initialy created.
        For information: OpenAI GPT's gelu is slightly different (and gives slightly different results):
        0.5 * x * (1 + torch.tanh(math.sqrt(2 / math.pi) * (x + 0.044715 * torch.pow(x, 3))))
        Also see https://arxiv.org/abs/1606.08415
    """
    return x * 0.5 * (1.0 + torch.erf(x / math.sqrt(2.0)))

ACT2FN = {"relu": torch.nn.functional.relu, "swish": swish, "gelu_new": gelu_new}

try:
    ACT2FN["gelu"] = torch.nn.functional.gelu
except AttributeError:
    ACT2FN["gelu"] = gelu
```

However, I wonder whether it wouldn't be cleaner to have all activation functions in an importable constant `ACT2FN` somewhere. Maybe under `modeling_utils`? This should make it easier to keep a good overview of all activation functions that can be used. If requested, I can put some time in refactoring this.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
