This will reduce the number of path normalizations while more places will use
this type. In some cases it also will reduce number of temporary allocations for
new strings.
For now make conversion from and to std::string_view implicit to allow gradual
migration to this type.