Handle Windows long file names in a few more places. (#1382)

Go can handle long file names on Windows if they are not relative.
This change makes some file paths absolute so that go can handle them.
See https://github.com/golang/go/blob/b86e76681366447798c94abb959bb60875bcc856/src/os/path_windows.go#L133.

The protoc binary cannot handle long filenames either, so this change
generates go protos in the temporary folder and then moves the contents
into place.
6 files changed