"BertForMaskedLM - pretrained model" cannot resize vocab output size

### Who can help
 albert, bert, GPT2, XLM: @LysandreJik 

## Information

Model I am using (Bert)

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [0] my own modified scripts: (give details below)

The tasks I am working on is:
* [ ] an official GLUE/SQUaD task: (give the name)
* [0] my own task or dataset: (give details below)

## To reproduce
I resized embedding dim, but output dim cannot change. Please kindly refer to the code below:
```
from transformers import BertTokenizer, BertForMaskedLM
from transformers import LineByLineTextDataset

model = BertForMaskedLM.from_pretrained('bert-base-uncased')

###### tokenizer
tokenizer_path = './data/transformer_tokenizer_add_entitymasking_token.pt/'
tokenizer = BertTokenizer.from_pretrained(tokenizer_path)
model.bert.resize_token_embeddings(len(tokenizer))
model.cls.predictions.decoder.out_features = len(tokenizer)

out[0].shape, label.shape
>>>
(torch.Size([2, 20, 30522]),  torch.Size([2, 20])) # 30522 should be len(tokenizer) 30544
```

I solved it by following code:
```
with torch.no_grad():
    replace_linear = torch.nn.Linear(in_features=768, out_features=len(tokenizer))
    replace_linear.weight[:30522,:].copy_(model.cls.predictions.decoder.weight)
    model.cls.predictions.decoder = replace_linear
    model.cls.predictions.decoder = model.cls.predictions.decoder.requires_grad_(True)
```