Save tokenizer and model config when training with FSDP
# What does this PR do?

Currently when training models with FSDP the tokenizer and model config are not saved (at least using standard configs I have). This is especially bad when running a custom train.py that modifies the tokenizer and model before training. In that scenario there is no record of the new model config or tokenizer.

I have altered trainer.py to have a `_save_tokenizer_and_configs` method and added a call to this method in the model saving logic when FSDP is enabled.

If the team feels there could be better refactoring to handle this would be happy to discuss improvements to this PR!

Other note, to the best of my knowledge this is happening because when the logic flows to FSDP enabled it is just using the custom FSDP model saving and there is no logic for saving the other tokenizer and config info. If there is already a known config setting I'm missing that would fix this please let me know.

## Before submitting

I have not added any new tests.

## Who can review?

This involves modifications to the trainer so maybe @sgugger would be interested in reviewing?

The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_25198). All of your documentation changes will be reflected on that endpoint.