TFAlbertForMaskedLM Decoding Error
# 🐛 Bug

## Information

### Model
TFAlbertForMaskedLM <https://huggingface.co/transformers/model_doc/albert.html#tfalbertformaskedlm>

### Language
English

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [x] my own modified scripts: (give details below)
```python
import tensorflow as tf
from transformers import AlbertTokenizer, TFAlbertForMaskedLM

tokenizer = AlbertTokenizer.from_pretrained('albert-base-v2')
model = TFAlbertForMaskedLM.from_pretrained('albert-base-v2')
input_ids = tf.constant(tokenizer.encode("This is a test!"))[
    None, :]  # Batch size 1
outputs = model(input_ids)
prediction_scores = outputs[0]
outputTokens = tf.math.argmax(prediction_scores, axis=2)
outputTokens = tf.keras.backend.eval(outputTokens[0])
outputTokens = tokenizer.decode(outputTokens)
print(outputTokens)

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

## To reproduce

Steps to reproduce the behavior:

1. Copy the above code
2. See output in terminal
```
time this is a test! your
```

## Expected behavior

<!-- A clear and concise description of what you would expect to happen. -->
Output
`This is a test!`
## Environment info
<!-- You can run the command `python transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->
     
- `transformers` version: How to install transformers-cli?
- Platform:  MacOS 10.15.2
- Python version: 3.6.6
- PyTorch version (GPU?): 1.4.0 CPU
- Tensorflow version (GPU?): 2.1.0 CPU
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

When you encode with `tokenizer = AlbertTokenizer.from_pretrained('albert-base-v2')` a [CLS] token is added in the beginning and a [SEP] token is added at the end. You can verify this by: 

```python 
from transformers import AlbertTokenizer, TFAlbertForMaskedLM

tokenizer = AlbertTokenizer.from_pretrained('albert-base-v2')
tokenizer.decode(tokenizer.encode("This is a test!"))  # gives '[CLS] this is a test![SEP]'
```

Now the encoded string has two added tokens, one in the begging, one in the end. This means that the two new tokens also produce two logits whose argmax token that in your case happened to be `time` and `your`. If you don`t want to add [CLS] and [SEP] when encoding, use:

```python 
from transformers import AlbertTokenizer, TFAlbertForMaskedLM

tokenizer = AlbertTokenizer.from_pretrained('albert-base-v2')
tokenizer.decode(tokenizer.encode("This is a test!", add_special_tokens=False))  # gives 'this is a test!'
```

<|||||>So they can't output special tokens properly.<|||||>I mean they can, but the model does not have to output "[CLS]" when you feed "[CLS]" in the model. 