Fix fingerprint when moving cache dir
Windows, why are you doing this to me ? Thanks @lhoestq, I'm starting reviewing this PR. Yea issues on windows are about long paths, not long filenames.
We can make sure the lock filenames are not too long, but not for the paths Took your suggestions into account @albertvillanova :)
The fingerprint of a dataset changes if the cache directory is moved.
I fixed that by setting the fingerprint to be the hash of:
- the relative cache dir (dataset_name/version/config_id)
- the requested split

Close #2496 

I had to fix an issue with the filelock filename that was too long (>255). It prevented the tests to run on my machine. I just added `hash_filename_if_too_long` in case this happens, to not get filenames longer than 255.
We usually have long filenames for filelocks because they are named after the path that is being locked. In case the path is a cache directory that has long directory names, then the filelock filename could en up being very long.