Experiment with string_view - nice drop-in replacement.
I also did cleanups that could be done with string I think.
I think I have to store at least one path with path_iterator - operator*, operator->?