some tokenizer(s) don't save the updated attributes
### System Info

transformers version: 4.25.0.dev0
Torch version: 1.13.0+cpu
Cuda available: False
Cuda version: None
CuDNN version: None
Number of GPUs available: 0

### Description

For `GPT2Tokenizer(Fast)`, Set `tokenizer.model_max_length` to `128` (originally `1024`), save it then reload, will give `tokenizer.model_max_length` being `1024`.

### Reproduction

```python
from transformers import GPT2Tokenizer, GPT2TokenizerFast

tokenizer = GPT2TokenizerFast.from_pretrained("gpt2")
print(tokenizer.model_max_length)

tokenizer.model_max_length = 128
print(tokenizer.model_max_length)

tokenizer.save_pretrained("my-gpt2")
tokenizer_loaded = GPT2TokenizerFast.from_pretrained("my-gpt2")
print(tokenizer_loaded.model_max_length)
```

The output is

```bash
1024
128
1024

```


### Expected behavior

`tokenizer_loaded.model_max_length` should be `128` in the above example. In general, the updated attribute(s) should be saved.
It turns out that we use
https://github.com/huggingface/transformers/blob/0ee71188ff184ee5f8b70081665858301fe4afb1/src/transformers/tokenization_utils_fast.py#L735
which is defined
https://github.com/huggingface/transformers/blob/0ee71188ff184ee5f8b70081665858301fe4afb1/src/transformers/tokenization_utils_base.py#L1475

Is this the expected behavior, i.e. we don't want to save the modified attributes like `model_max_length`?<|||||>Hi @ydshieh, 

This is a very good remark! I've also often wondered... what I'm afraid of is that for some attributes the tokenizer's behavior is different between:
1. A tokenizer initialized with some parameters and then with a parameter that is modified on the fly
2. A tokenizer that would be initialized with the final parameters of the previous tokenizer

What is complicated with tokenizers is that all tokenizers share the lines of code you mention but many of them have specificities implemented on top of them and it's quite hard to be sure that we won't break more things than we fix (and this if we consider that we don't add a breaking change...). I think there must be a reason why historically it was chosen to only save the `init_kwargs` for the `tokenizer_config`:

https://github.com/huggingface/transformers/blob/0ee71188ff184ee5f8b70081665858301fe4afb1/src/transformers/tokenization_utils_base.py#L2084