Inconsistent tokenizer handling of max_len
Hi, it seems that at least the RobertaTokenizerFast is not actually truncating encodings to the max_len when encoding(the same issue occurs with the other encoding functions). The BPE tokenizer from tokenizers does.

Below the problem is shown based on the 'how to train from scratch' example.

```
from tokenizers.implementations import ByteLevelBPETokenizer
from tokenizers.processors import BertProcessing
from transformers import RobertaTokenizerFast

good_tokenizer = ByteLevelBPETokenizer(
    "./BERT-Esperanto/vocab.json",
    "./BERT-Esperanto/merges.txt",
)
good_tokenizer._tokenizer.post_processor = BertProcessing(
    ("</s>", good_tokenizer.token_to_id("</s>")),
    ("<s>", good_tokenizer.token_to_id("<s>")),
)

good_tokenizer.enable_truncation(max_length=512)

bad_tokenizer = RobertaTokenizerFast.from_pretrained("./BERT-Esperanto/", max_len=512)

txt = "Mi estas Julien." * 1000

print(
    len(good_tokenizer.encode(txt).tokens),
    len(bad_tokenizer.encode(txt))
)

# results: 
512
5002
```
Yes, similarly to the `good_tokenizer` where you enabled truncation, you should enable it for the `bad_tokenizer`:

```py
from transformers import RobertaTokenizerFast

actually_very_good_tokenizer = RobertaTokenizerFast.from_pretrained("./BERT-Esperanto/", max_len=512)

txt = "Mi estas Julien." * 1000

print(
    len(actually_very_good_tokenizer.encode(txt, truncation=True))
)

# 512
```

You can check the documentation [here](https://huggingface.co/transformers/main_classes/tokenizer.html#transformers.PreTrainedTokenizer.__call__).<|||||>Ah, gotcha my mistake, thanks for the quick response<|||||>Love the variable names here. (and the sample text) 🤣