[run_clm.py] restore caching
`datasets==0.1.6` introduced in-memory datasets, which unfortunately has no caching which makes it very slow to develop with as the dataset gets reprocessed on every run. Supposedly this should make things faster overall, but at this huge cost to us developers.

It's also inconsistent where some datasets behave in one way, others in another way. This is too magical, IMHO.

This PR adds `keep_in_memory=False`, to disable in-memory cache, but restores normal caching.

Perhaps adding a note in the example that the user can change it to `True` if they don't care for the slow startup?

Alternatively, if you believe that the new behavior is good, let's create an env var at `datasets` that will control that, so that we can turn off this painful behavior w/o needing to manually modify the code.

Fixes: https://github.com/huggingface/transformers/issues/11801

p.s. working on this one script on many fronts - and then will sync other scripts at once.

@sgugger, @VictorSanh, @lhoestq 
No we can't just add the new argument without checking the version, as it's probably not going to work anymore for earlier versions of datasets (that's why it's bad to do breaking changes :-P).
It seems like it's the way the Datasets library wants to be used, so I would leave the default behavior here and you can change the script locally for your use case. If the defaults of the Datasets library are not satisfactory, then maybe those defaults should be changed.<|||||>Makes sense, @sgugger - thank you - back to `datasets`