CGO merged directory should have usable name. (#2930)

* CGO merged directory should have usable name.

cgo2 merges sources and generated code under a common directory, however this directory is anonymous.

This breaks nogo's ability to easily include/exclude files as only the file's basename is retained.

This change embeds cgo/packagePath into the merged directory to make it easy to include/exclude sources being compiled by cgo.

Note: PR #2863 ensured that files //line: directives had their meaningful alt names included in nogo output, however cgo2's copy and link steps do not add that directive (pieces of the toolchain do), making certain files still challenging to include/exclude.

* Use a windows friendly widely accessible cfunc

* include output in failure message when pattern does not match

* On windows the path contains back slashes.

Thanks DEC -  https://www.youtube.com/watch?v=5T3IJfBfBmI
2 files changed