Train/Valid split not-reproducible b/w machines - sort file objs on load

See PR for main problem/solution description.

tl;dr - random operation don’t reproduce across machines b/c the same data-dir on different machines loads in a different original order, before random operations even take place.

I’ll add tests and doc, after main code passes review. [todo - make presort Optional type]

Problem notebook - main thing to notice: GCP returns “dog_2.txt, dog_3.txt, dog_1.txt” while locally, in both windows and wsl, it returns “dog_1.txt, dog_2.txt, dog_3.txt”

Solution notebook - notice how all platforms now return “dog_1.txt, dog_2.txt, dog_3.txt”

Extra Info & Minor Details:
All the following things were checked and had no impact: passing in matching seed argument to split_rand_pct, matching np.random.seed as the line just before the datablock statement, np-version 1.15 vs 1.16, python version 3.6 vs 3.7; there is no problem with any of these, the only problem is the assumption the same data files will always be read in the same order off the filesystem which they are not.

For a while I thought the issue had to do inode ( in the filesystem which creates an ordering index for files, distinct from its alphabetical order, this appears to not be the sole/primary cause.

This is not purely a windows vs linux issue since the error reporduces in my local WSL env against my GCP server. However it may not reproduce on Mac vs Linux.