test wrapper: introduce a simple Path abstraction
test wrapper: introduce a simple Path abstraction

The class allows extracting the underlying path as
a (immutable) string so it's easy to pass the path
to WinAPI functions, but the class does not allow
mutating the unterlying path so it's safe to pass
around Path objects.

Change-Id: I8bb3c96d816a505513ecc4953fed53ed144a32b2

Closes #6128.

Change-Id: I03fb8eb556cf44f96bc2a22731341aaf01e5bcfc
PiperOrigin-RevId: 212448121

ButterflyNetwork/bazel,davidzchen/bazel,dslomov/bazel-windows,akira-baruah/bazel,dslomov/bazel-windows,katre/bazel,dslomov/bazel,safarmer/bazel,dslomov/bazel-windows,davidzchen/bazel,cushon/bazel,aehlig/bazel,aehlig/bazel,aehlig/bazel,bazelbuild/bazel,akira-baruah/bazel,katre/bazel,meteorcloudy/bazel,aehlig/bazel,davidzchen/bazel,dslomov/bazel-windows,safarmer/bazel,meteorcloudy/bazel,werkt/bazel,akira-baruah/bazel,cushon/bazel,akira-baruah/bazel,ulfjack/bazel,ulfjack/bazel,ButterflyNetwork/bazel,aehlig/bazel,meteorcloudy/bazel,werkt/bazel,perezd/bazel,perezd/bazel,werkt/bazel,meteorcloudy/bazel,safarmer/bazel,dslomov/bazel,meteorcloudy/bazel,meteorcloudy/bazel,ButterflyNetwork/bazel,bazelbuild/bazel,bazelbuild/bazel,twitter-forks/bazel,davidzchen/bazel,cushon/bazel,davidzchen/bazel,katre/bazel,twitter-forks/bazel,ButterflyNetwork/bazel,aehlig/bazel,akira-baruah/bazel,dslomov/bazel,ulfjack/bazel,dslomov/bazel,ulfjack/bazel,dslomov/bazel,werkt/bazel,dslomov/bazel-windows,safarmer/bazel,twitter-forks/bazel,cushon/bazel,twitter-forks/bazel,perezd/bazel,perezd/bazel,bazelbuild/bazel,akira-baruah/bazel,safarmer/bazel,aehlig/bazel,ulfjack/bazel,davidzchen/bazel,safarmer/bazel,ButterflyNetwork/bazel,bazelbuild/bazel,perezd/bazel,twitter-forks/bazel,bazelbuild/bazel,davidzchen/bazel,meteorcloudy/bazel,katre/bazel,perezd/bazel,perezd/bazel,cushon/bazel,werkt/bazel,werkt/bazel,ulfjack/bazel,katre/bazel,dslomov/bazel,dslomov/bazel-windows,twitter-forks/bazel,twitter-forks/bazel,cushon/bazel,katre/bazel,ulfjack/bazel,ButterflyNetwork/bazel,dslomov/bazel