go/packages: use Package as the raw form

This deletes the raw and golist packatges, instead using the main
Package structure as the serialzied form between the build tool and the
loader.
This requires a few new fields on Package for information that we used
to hide, and some extra json tags on Package.
It also required Package to have custom JSON marshalling methods.

Change-Id: Ib72171bc93e2b494b97f4b0266504acaa9b3f647
Reviewed-on: https://go-review.googlesource.com/128120
Reviewed-by: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/go/packages/stdlib_test.go b/go/packages/stdlib_test.go
index 69bfe46..ecaa89d 100644
--- a/go/packages/stdlib_test.go
+++ b/go/packages/stdlib_test.go
@@ -30,7 +30,11 @@
 	alloc := memstats.Alloc
 
 	// Load, parse and type-check the program.
-	pkgs, err := packages.Load(nil, "std")
+	cfg := &packages.Config{
+		Mode:  packages.LoadAllSyntax,
+		Error: func(error) {},
+	}
+	pkgs, err := packages.Load(cfg, "std")
 	if err != nil {
 		t.Fatalf("failed to load metadata: %v", err)
 	}