When races_dir is set:
- os.walk scans all subdirectories of the source
- already-renamed files (both tokens present) are also moved if not in
the right races/<track>/<session>/ folder
- files already in the correct place are skipped with 'already in place'
GUI remembers last rename source folder separately from other modes.
rename_unprocessed now takes races_dir; when set, creates
races/<track>/Practice|Qualifying|Race/ and moves the file there.
GUI and CLI both pass _RACES_DIR so renaming from any folder
always ends up in the right place.