go.tools/godoc: deal with fallout from $GOROOT/src/pkg -> $GOROOT/src renaming.

To avoid breaking URLs, we redirect /src/pkg/* to /src/*.

The URL /pkg is now the "directory" /src, which triggers the
"Packages" index.

All other references to "src/pkg" are now gone,
except a number in the namespace documentation which are
probably still illustrative.

Tested: go test cmd/godoc godoc
        Manual inspection of src and src/pkg pages.
        with GOROOT and GOPATH packages
        -analysis
        /AUTHORS file URL still works

LGTM=bradfitz, adg
R=bradfitz, adg
CC=golang-codereviews
https://golang.org/cl/141770044
diff --git a/godoc/godoc_test.go b/godoc/godoc_test.go
index 37e1d71..a10a1ab 100644
--- a/godoc/godoc_test.go
+++ b/godoc/godoc_test.go
@@ -13,8 +13,8 @@
 		path string
 		want string
 	}{
-		{"/src/pkg/fmt", "pkg/fmt"},
-		{"src/pkg/fmt", "pkg/fmt"},
+		{"/src/fmt", "pkg/fmt"},
+		{"src/fmt", "pkg/fmt"},
 		{"/fmt", "pkg/fmt"},
 		{"fmt", "pkg/fmt"},
 	} {
@@ -32,13 +32,13 @@
 		high int
 		want string
 	}{
-		{"/src/pkg/fmt/print.go", 42, 30, 50, "/src/pkg/fmt/print.go?s=30:50#L32"},
-		{"/src/pkg/fmt/print.go", 2, 1, 5, "/src/pkg/fmt/print.go?s=1:5#L1"},
-		{"/src/pkg/fmt/print.go", 2, 0, 0, "/src/pkg/fmt/print.go#L2"},
-		{"/src/pkg/fmt/print.go", 0, 0, 0, "/src/pkg/fmt/print.go"},
-		{"/src/pkg/fmt/print.go", 0, 1, 5, "/src/pkg/fmt/print.go?s=1:5#L1"},
-		{"fmt/print.go", 0, 0, 0, "/src/pkg/fmt/print.go"},
-		{"fmt/print.go", 0, 1, 5, "/src/pkg/fmt/print.go?s=1:5#L1"},
+		{"/src/fmt/print.go", 42, 30, 50, "/src/fmt/print.go?s=30:50#L32"},
+		{"/src/fmt/print.go", 2, 1, 5, "/src/fmt/print.go?s=1:5#L1"},
+		{"/src/fmt/print.go", 2, 0, 0, "/src/fmt/print.go#L2"},
+		{"/src/fmt/print.go", 0, 0, 0, "/src/fmt/print.go"},
+		{"/src/fmt/print.go", 0, 1, 5, "/src/fmt/print.go?s=1:5#L1"},
+		{"fmt/print.go", 0, 0, 0, "/src/fmt/print.go"},
+		{"fmt/print.go", 0, 1, 5, "/src/fmt/print.go?s=1:5#L1"},
 	} {
 		if got := srcPosLinkFunc(tc.src, tc.line, tc.low, tc.high); got != tc.want {
 			t.Errorf("srcLinkFunc(%v, %v, %v, %v) = %v; want %v", tc.src, tc.line, tc.low, tc.high, got, tc.want)
@@ -51,10 +51,10 @@
 		src  string
 		want string
 	}{
-		{"/src/pkg/fmt/print.go", "/src/pkg/fmt/print.go"},
-		{"src/pkg/fmt/print.go", "/src/pkg/fmt/print.go"},
-		{"/fmt/print.go", "/src/pkg/fmt/print.go"},
-		{"fmt/print.go", "/src/pkg/fmt/print.go"},
+		{"/src/fmt/print.go", "/src/fmt/print.go"},
+		{"src/fmt/print.go", "/src/fmt/print.go"},
+		{"/fmt/print.go", "/src/fmt/print.go"},
+		{"fmt/print.go", "/src/fmt/print.go"},
 	} {
 		if got := srcLinkFunc(tc.src); got != tc.want {
 			t.Errorf("srcLinkFunc(%v) = %v; want %v", tc.src, got, tc.want)
@@ -69,10 +69,10 @@
 		line  int
 		want  string
 	}{
-		{"/src/pkg/fmt/print.go", "Sprintf", 33, "/src/pkg/fmt/print.go?h=Sprintf#L33"},
-		{"/src/pkg/fmt/print.go", "Sprintf", 0, "/src/pkg/fmt/print.go?h=Sprintf"},
-		{"src/pkg/fmt/print.go", "EOF", 33, "/src/pkg/fmt/print.go?h=EOF#L33"},
-		{"src/pkg/fmt/print.go", "a%3f+%26b", 1, "/src/pkg/fmt/print.go?h=a%3f+%26b#L1"},
+		{"/src/fmt/print.go", "Sprintf", 33, "/src/fmt/print.go?h=Sprintf#L33"},
+		{"/src/fmt/print.go", "Sprintf", 0, "/src/fmt/print.go?h=Sprintf"},
+		{"src/fmt/print.go", "EOF", 33, "/src/fmt/print.go?h=EOF#L33"},
+		{"src/fmt/print.go", "a%3f+%26b", 1, "/src/fmt/print.go?h=a%3f+%26b#L1"},
 	} {
 		if got := queryLinkFunc(tc.src, tc.query, tc.line); got != tc.want {
 			t.Errorf("queryLinkFunc(%v, %v, %v) = %v; want %v", tc.src, tc.query, tc.line, got, tc.want)