Calling the tokenizer modifies the tokenizer object
### System Info

- `transformers` version: 4.30.2
- Platform: Linux-6.1.31_1-x86_64-with-glibc2.36
- Python version: 3.9.16
- Huggingface_hub version: 0.15.1
- Safetensors version: 0.3.1
- PyTorch version (GPU?): 2.0.1 (True)
- Tensorflow version (GPU?): not installed (NA)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: <fill in>
- Using distributed or parallel set-up in script?: <fill in>

### Who can help?

@ArthurZucker 

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

Very simple reproduction here

```python
from transformers import AutoTokenizer
from datasets.utils.py_utils import dumps # Huggingface datasets

t = AutoTokenizer.from_pretrained('bert-base-uncased')
t.save_pretrained("tok1")
th1 = hash(dumps(t))
text = "This is an example text"
ttext = t(text, max_length=512, padding="max_length", truncation=True)
t.save_pretrained("tok2")
th2 = hash(dumps(t))

assert th1 == th2 # Assertion Error
```

The actual difference can be found if you try to save the tokenizer after calling it. Diff the tokenizer.json and you can see that the keys "padding" and "truncation" got updated.

`diff tok1/tokenizer.json tok2/tokenizer.json` produces an actual diff

### Expected behavior

The tokenizer object should not change just because it was called with the padding parameters.
Most likely the issue lies in Fast Tokenizers here:

https://github.com/huggingface/transformers/blob/fe861e578f50dc9c06de33cd361d2f625017e624/src/transformers/tokenization_utils_fast.py#L319-L388

I don't actually see anyplace where the original strategy is restored.

Because this snippet

```python
from transformers import AutoTokenizer

t = AutoTokenizer.from_pretrained('bert-base-uncased')
p1 = t._tokenizer.padding
text = "This is an example text"
ttext = t(text, max_length=256, padding="max_length", truncation=True)
p2 = t._tokenizer.padding
```

p1 and p2 are different. i.e the value of padding changes.
<|||||>Hey! This is actually expected. When you save a tokenizer, the `init_kwargs` that were last used are saved along. 
If you initialize the model with `from_slow = True`, then this will be saved. <|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.