build: catch API changes during build

Adds new file api/go1.txt, locking down the current API.
Any changes to the API will need to update that file.

run.bash (but not make.bash, or Windows) will check for
accidental API changes.

R=golang-dev, dsymonds, rsc
CC=golang-dev
https://golang.org/cl/5820070
diff --git a/src/run.bash b/src/run.bash
index 430ee76..748f6e9 100755
--- a/src/run.bash
+++ b/src/run.bash
@@ -74,7 +74,7 @@
 
 echo
 echo '#' ../misc/dashboard/builder ../misc/goplay
-go build ../misc/dashboard/builder ../misc/goplay || exit $?
+go build ../misc/dashboard/builder ../misc/goplay
 
 [ "$GOARCH" == arm ] ||
 (xcd ../test/bench/shootout
@@ -83,11 +83,15 @@
 
 echo
 echo '#' ../test/bench/go1
-go test ../test/bench/go1 || exit $?
+go test ../test/bench/go1
 
 (xcd ../test
 time go run run.go
 ) || exit $?
 
 echo
+echo '# Checking API compatibility.'
+go tool api -c $GOROOT/api/go1.txt
+
+echo
 echo ALL TESTS PASSED