[Examples] Add automatic dataset splitting in language-modeling examples
# What does this PR do?

Currently, language-modeling examples support passing a HF-datasets dataset as training data. However, this dataset needs to have a `train` and `validation` split, which is not the case for many language-modeling datasets, which are just unstructured text. The updated scripts automatically partition the `train` split to create a `validation` split if it doesn't exist already, and adds `validation_split_percentage` argument to control the split ratio, set to 5% by default.
Ah, the commit from #9127 seems to have snuck its way in there. Should I remove it?<|||||>If you can do it easily, that would be best!<|||||>> If you can do it easily, that would be best!

I've tried for a bit but I think I just made things worse ! If that's OK I'll leave it there and I'll fix things at merge time.