[Tokenization] fix edge case for bert tokenization
Author: patrickvonplaten
Pull request: yes

This PR fixes #3502 . 

The reason why the tests fail in #3502 is because of an edge case. 

If the input to `tokenizer.batch_encode_plus()` consists of a tokenized string that results in a list of exactly two strings (``[[16], [.]]`` in issue #3502) then it is treated as a pair of input sequences (=> [CLS] input_sequence_1 [SEP] input_sequence_2 [SEP]) but this behavior should only happen if the input list consists of two **untokenized** strings. 

Comments:
@mfuntowicz @n1t0 @LysandreJik  - could you check? :-) 

Does this mean that `batch_encode_plus` is supposed to handle "pre-tokenized" inputs? I thought this was something introduced by https://github.com/huggingface/transformers/pull/3185 with a specific flag `is_pretokenized` (cc @mfuntowicz)

# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/3517?src=pr&el=h1) Report
> Merging [#3517](https://codecov.io/gh/huggingface/transformers/pull/3517?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/5aa8a278a3f13b8f83a0deb9b6d743f159cea23c&el=desc) will **increase** coverage by `0.01%`.
> The diff coverage is `100.00%`.

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

```diff
@@            Coverage Diff             @@
##           master    #3517      +/-   ##
==========================================
+ Coverage   78.03%   78.05%   +0.01%     
==========================================
  Files         104      104              
  Lines       17708    17709       +1     
==========================================
+ Hits        13819    13822       +3     
+ Misses       3889     3887       -2     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/3517?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/tokenization\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3517/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fdXRpbHMucHk=) | `85.78% <100.00%> (+0.01%)` | :arrow_up: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3517/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `92.23% <0.00%> (+0.12%)` | :arrow_up: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/3517/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `93.28% <0.00%> (+0.16%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/3517?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/3517?src=pr&el=footer). Last update [5aa8a27...3bde162](https://codecov.io/gh/huggingface/transformers/pull/3517?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


> Does this mean that `batch_encode_plus` is supposed to handle "pre-tokenized" inputs? I thought this was something introduced by #3185 with a specific flag `is_pretokenized` (cc @mfuntowicz)

@mfuntowicz showed me the `is_pretokenized` flag for tokenizers v3.0.0 so this makes everything much easier