More file/path sanitisation changes

Revert to previous logic when --whitespace not used
Ensure ASCII in sanitised file/path unless --whitespace used
Move all sanitisation code to StringUtils::sanitize_path
Don't display WMA advice with --test
Apply --isodate to subdir paths