Bias in `BertLMPredictionHead ` is added twice
# 🐛 Bug

According to this PR #2521, a link is created between the linear layer bias and the model attribute bias in `BertLMPredictionHead`. In the `__init__`:
```python
self.decoder = nn.Linear(config.hidden_size, config.vocab_size, bias=False)
self.bias = nn.Parameter(torch.zeros(config.vocab_size))
self.decoder.bias = self.bias  # here is the problem
```
in the `forward`:
```
hidden_states = self.decoder(hidden_states) + self.bias
```
I am afraid this will cause the `self.decoder` (which is a `nn.Linear`) to have bias and as a result the bias is added twice in the `forward` function.

## To reproduce

Steps to reproduce the behavior:

For version 2.4.0, where the PR is merged and thus has this bug:
```python
from transformers import *
model = BertForMaskedLM.from_pretrained('bert-base-cased')
print(model.cls.predictions.bias)
# tensor([-0.1788, -0.1758, -0.1752,  ..., -0.3448, -0.3574, -0.3483], requires_grad=True)
print(model(torch.tensor([[0]])))
# (tensor([[[-12.2630, -12.2798, -12.1221,  ..., -10.2729, -10.8859, -11.1733]]], grad_fn=<AddBackward0>),)
```
For version 2.3.0, which is before the PR being merged and thus no bug:
```python
from transformers import *
model = BertForMaskedLM.from_pretrained('bert-base-cased')
print(model.cls.predictions.bias)
# tensor([-0.1788, -0.1758, -0.1752,  ..., -0.3448, -0.3574, -0.3483], requires_grad=True)
print(model(torch.tensor([[0]])))
# (tensor([[[-12.0842, -12.1040, -11.9469,  ...,  -9.9281, -10.5285, -10.8251]]], grad_fn=<AddBackward0>),)
```
Comparing the above output, you can clearly see that for version 2.4.0, the bias is added twice.

## Environment info
- `transformers` version: 2.4.0
- Platform: Ubuntu 
- Python version: 3.7
- PyTorch version (GPU?): 1.0.1 (with GPU)
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

This is a known issue (cf. https://github.com/huggingface/transformers/pull/2928). It will be fixed in another (cleaner) PR, though.