Updating the TensorFlow models to work as expected with tokenizers v3.0.0
Models and tokenizers should work in harmony; this is why it is an API design choice to be able to send the output of `encode_plus` and `batch_encode_plus` straight to the model, in both PyTorch and TensorFlow:

```py
encoded_sequence = tokenizer.encode_plus(sequence)
model(encoded_sequence)  # for TensorFlow
model(**encoded_sequence)  # for PyTorch
```

With the recent changes of tokenizers-v3.0.0 and the introduction of `BatchEncoding`, the way the TensorFlow models usually identified such inputs didn't work, as it was looking for a `dict` instead of a `BatchEncoding`. This PR patches this.

This feature was previously untested; this PR addresses this by adding four different tests on each tokenizers; testing that the tokenizers return correct `BatchEncoding` objects in both PyTorch and TensorFlow which can be fed directly to the model. Both `encode_plus` and `batch_encode_plus` are tested.

Some issues were found, and were patched with this PR.