never_split on slow tokenizers should not split
I'm actually not sure if it's the right behavior, but when using `do_basic_tokenization` on `BertTokenizer` the parameter `never_split` is not used to determine if a token should be sent to wordpiece tokenizer.

This PR checks, for each tokens returned by `basic_tokenizer`, if the token is not in the `never_split: set` before sending to wordpiece. If the token is found in `never_split` then it is added as-it in the returned list of tokens.

Updated `never_split: List` -> `never_split: Set` as we're always testing for membership in the set and not for a specific index in the collection. [Set are 10x faster for membership operations than list](https://stackoverflow.com/a/17945009) 

**Before:** 

```python
tokenizer = BertTokenizer.from_pretrained(
    "bert-base-cased",
    use_fast=False,
    never_split=['lol'],
    do_basic_tokenize=True
)
tokenizer.tokenize("lol")
Out[4]: ['lo', '##l']
```

**After**

```python
tokenizer = BertTokenizer.from_pretrained(
    "bert-base-cased", 
    use_fast=False, 
    never_split=['lol'], 
    do_basic_tokenize=True
)
tokenizer.tokenize("lol")
Out[5]: ['lol']
```


Related to #3518 
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=h1) Report
> Merging [#4723](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/76779363160a598f130433209a77f8a747351b61&el=desc) will **increase** coverage by `0.36%`.
> The diff coverage is `80.00%`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/4723/graphs/tree.svg?width=650&height=150&src=pr&token=9qOlN6Hb1c)](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #4723      +/-   ##
==========================================
+ Coverage   77.38%   77.74%   +0.36%     
==========================================
  Files         128      128              
  Lines       21071    21071              
==========================================
+ Hits        16305    16381      +76     
+ Misses       4766     4690      -76     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/tokenization\_bert.py](https://codecov.io/gh/huggingface/transformers/pull/4723/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fYmVydC5weQ==) | `91.25% <80.00%> (-3.75%)` | :arrow_down: |
| [src/transformers/modeling\_openai.py](https://codecov.io/gh/huggingface/transformers/pull/4723/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19vcGVuYWkucHk=) | `80.41% <0.00%> (-1.38%)` | :arrow_down: |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4723/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `73.44% <0.00%> (-0.42%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4723/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `88.83% <0.00%> (+0.32%)` | :arrow_up: |
| [src/transformers/data/processors/squad.py](https://codecov.io/gh/huggingface/transformers/pull/4723/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9kYXRhL3Byb2Nlc3NvcnMvc3F1YWQucHk=) | `56.68% <0.00%> (+28.02%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=footer). Last update [7677936...b0fd2b3](https://codecov.io/gh/huggingface/transformers/pull/4723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
