Bart Tokenizer treat symbols in a word as a new word. 
## 🐛 Bug

<!-- Important information -->

The model I am using is Bart:

The problem arises when using:
* [ ] `tokenizer.encode`
* [ ] `tokenizer.decode`
The tasks I am working on is:
* [ ] Encode a string, then decode it back.

## To Reproduce

```
import torch
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-cased')

test_string = 'text with percentage%'

# encode Converts a string in a sequence of ids (integer), using the tokenizer and vocabulary.
input_ids = tokenizer.encode(test_string)
output = tokenizer.decode(input_ids)
print(output)
```

`>>> text with percentage %`

## Expected behavior

It should be `text with percentage%`, which treats the symbol in the word as one word.


## Environment

* OS: MacOS
* Python version: 3.7
* PyTorch version: 1.3
* PyTorch Transformers version (or branch): Master

Hi, this is due to the original BERT's tokenization. You can try it using the [google-research's implementation](https://github.com/google-research/bert):

```py
raw_text = 'text with percentage%'
tokenizer = tokenization.FullTokenizer(vocab_file=vocab_file, do_lower_case=True)
tokens = tokenizer.tokenize(raw_text)

print(tokens)  # ['text', 'with', 'percentage', '%']
```

The goal is to be as close as possible to the original implementation, hence the similar behavior concerning special tokens.