windows: improve file__{exists,make_dir..}.

file__exists previously only returned true for files, not directories;
it's debatable what the right behavior is based on the function name,
but I decided I want it to return true for either files or directories.

make_dir was recomposing the paths incorrectly by dropping the colon
after the drive letter. I don't know how I missed this earlier. I have a
bad feeling that this function needs more testing.