Reapply the change after fixing sanitizer errors.
The original problem was that StringRefs in Matches are pointing to
temporary local std::strings created by path::convert_to_slash in
the regex match call. This patch does the conversion up front in
container FilePath.
This reverts commit 2966f0fa505266735dbc8324b8821b7f0aa901ff.