proto: Pass in the plugin as tools to preserve runfiles (#4514) **What type of PR is this?** Bug fix **What does this PR do? Why is it needed?** The proto plugin should preserve runfiles so that bazel targets that rely on external data can find them. It does this by by running the plugin as a tool, which is correct because plugins are expected to be built and run using the exec configuration. **Which issues(s) does this PR fix?** Fixes #4513