To avoid implicit conversion via Normalized which creates NormalizedView from a
temporary Normalized. Mark constructors explicit on purpose so there is no
ambiguity on implicit conversion when there is an overloaded function like:
void f(const Normalized&);
void f(NormalizedView);
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.