gc: disallow close on receive-only channels

Fixes #2353.
Fixes #2246.

R=golang-dev, r, gri
CC=golang-dev
https://golang.org/cl/5282042
diff --git a/test/closedchan.go b/test/closedchan.go
index 95314b3..0dbe662 100644
--- a/test/closedchan.go
+++ b/test/closedchan.go
@@ -327,4 +327,15 @@
 			testclosed(mk(closedasync()))
 		}
 	}
+	
+	var ch chan int	
+	shouldPanic(func() {
+		close(ch)
+	})
+	
+	ch = make(chan int)
+	close(ch)
+	shouldPanic(func() {
+		close(ch)
+	})
 }