go.tools/go/loader: add Config.ParserMode configuration parameter.

Existing tools use the default value of zero; their behaviour is unchanged.
(*Config).ParseFile is used only from tests.

LGTM=crawshaw, rsc, gri
R=crawshaw, gri, rsc
CC=golang-codereviews
https://golang.org/cl/79290044
diff --git a/go/loader/util.go b/go/loader/util.go
index a772f02..df19b7d 100644
--- a/go/loader/util.go
+++ b/go/loader/util.go
@@ -21,7 +21,7 @@
 // I/O is done via ctxt, which may specify a virtual file system.
 // displayPath is used to transform the filenames attached to the ASTs.
 //
-func parseFiles(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, files ...string) ([]*ast.File, error) {
+func parseFiles(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, files []string, mode parser.Mode) ([]*ast.File, error) {
 	if displayPath == nil {
 		displayPath = func(path string) string { return path }
 	}
@@ -56,7 +56,7 @@
 				errors[i] = err
 				return
 			}
-			parsed[i], errors[i] = parser.ParseFile(fset, displayPath(file), rd, 0)
+			parsed[i], errors[i] = parser.ParseFile(fset, displayPath(file), rd, mode)
 		}(i, file)
 	}
 	wg.Wait()