Have Url::to_file_path() return Err rather than fail on NUL bytes.
Add Url::to_file_path() for Windows.

Instead of system-specific code with #[cfg()], this method now returns
(through a trait) either std::path::posix::Path or std::path::windows::Path