runtime: more changes in preparation to the new scheduler
add per-P cache of dead G's
add global runnable queue (not used for now)
add list of idle P's (not used for now)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/7397061
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h
index 6d7a315..11f4557 100644
--- a/src/pkg/runtime/runtime.h
+++ b/src/pkg/runtime/runtime.h
@@ -317,11 +317,19 @@
 {
 	Lock;
 
+	P*	link;
+
 	// Queue of runnable goroutines.
 	G**	runq;
 	int32	runqhead;
 	int32	runqtail;
 	int32	runqsize;
+
+	// Available G's (status == Gdead)
+	G*	gfree;
+	int32	gfreecnt;
+
+	byte	pad[64];
 };
 
 // The m->locked word holds a single bit saying whether