Make the FilesystemOps interface take std::string.

This makes it certain we don't get a stray null.