gc: return of ideal bool

This is a manual undo of CL 5674098.
It does not implement the even less strict spec
that we just agreed on, but it gets us back where
we were at the last weekly.

R=ken2
CC=golang-dev
https://golang.org/cl/5683069
diff --git a/test/fixedbugs/bug285.go b/test/fixedbugs/bug285.go
index 6b0099b..0a8a0f0 100644
--- a/test/fixedbugs/bug285.go
+++ b/test/fixedbugs/bug285.go
@@ -20,6 +20,7 @@
 	type B bool
 	b := B(false)
 	mb := make(map[B]int)
+	mb[false] = 42 // this should work: false is assignment compatible with B
 	mb[b] = 42
 
 	type Z int