path2: Implement WindowsPath
path2: Rename Path::new() to Path::from_vec()
path2: Add opt variants for from_vec/from_str
path2: Implement .as_display_str() and .to_display_str()

These functions are for working with a string representation of the path
even if it's not UTF-8 encoded. They replace invalid UTF-8 sequences
with the replacement char.
path2: Implement IterBytes for Path
path2: Implement stat support
path2: Rename pop_opt() to pop() and add each_parent()
path2: Convert typedefs to `pub use`s

Turns out you can't call static methods on typedefs. Use `pub use`
instead to work around this issue.
path2: Add format helpers .display() and .filename_display()

These methods return an object that can be formatted using {} to print
display strings.

Path itself does not implement fmt::Default to avoid accidental usage of
display strings in incorrect places (e.g. process arguments).
path2: Replace the path module outright

Remove the old path.
Rename path2 to path.
Update all clients for the new path.

Also make some miscellaneous changes to the Path APIs to help the
adoption process.
path2: Update asserts for new format!() style
path2: Update for loop -> continue