Fix path handling on windows.
Fix path handling on windows.

Delay turning paths into string. Instead, use methods on Path/PathBuf
to manipulate paths. This way the Rust Path implementation gets to deal with
all werid cross-platform issues.

This should fix #359

Keats/gutenberg,Keats/gutenberg,Keats/gutenberg,Keats/gutenberg,Keats/gutenberg