Argument “never_split” not working on bert tokenizer
I used the ```never_split``` option and tried to retain some tokens. But the tokenizer still divide them into wordpieces. 

```
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'])
tokenizer.tokenize("lol That's funny")
['lo', '##l', 'that', "'", 's', 'funny']
```
**A link to original question on Stack Overflow**: 
https://stackoverflow.com/posts/60914793/edit
Does this problem arise with the fast tokenizer too? Can you try both:

```python
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'], use_fast=True)
# and
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'], use_fast=False)
```<|||||>> Does this problem arise with the fast tokenizer too? Can you try both:
> 
> ```python
> tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'], use_fast=True)
> # and
> tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'], use_fast=False)
> ```

Tried. Neither works...
However, if I tried to load customzied vocab which replace "[unused]" toakens with the ones I don't want to split. The tokenizer works.

But the default vocab only allows around 1k new tokens. If I add more, the embedding size will change. But the TF models will raise implementation error if I called this:
```
bert = TFBertModel.from_pretrained('bert-base-uncased')
bert.resize_token_embeddings(36000)
```
<|||||>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.
<|||||>This problem still exists where the "never_split"

```python
from transformers import BertTokenizer
USE_FAST = False

tokenizer = BertTokenizer.from_pretrained("bert-base-cased",
                                          use_fast=USE_FAST,
                                          never_split=['lol'],
                                          do_basic_tokenize=True)
print(tokenizer.tokenize(" lol That's funny"))
```
I started going through the code, but it's a bit of a rabbit hole since you have "never_split" as an init argument of the basic tokenizer as well as the pretrained tokenizer, but also as part of the `tokenize` method. It isn't clear to me exactly where it is used.

Perhaps some doc changes are needed as well, since it is typed as boolean:

https://github.com/huggingface/transformers/blob/35df91148545e09cd199d89e707043eba5434f59/src/transformers/tokenization_bert.py#L133

cc @n1t0 @mfuntowicz <|||||>I just tested the last example provided by @BramVanroy and it seems to work after #4723. Do not hesitate to reopen if needed!