Re: "especially if the traits are usable in the default implementations of the methods"  Yes, `WindowsPath` and `PosixPath` were already deriving from `Clone`, and now that some of the code from those has been moved up into default methods, I had to do this in order to use the traits in the default methods.

I'll see what I can do about having this code perform fewer allocations, but I probably will need some advice and examples.