stack overflow debugging and fix.

  * in 6l, -K already meant check for stack underflow.
    add -KK to mean double-check stack overflows
    even in nosplit functions.

  * comment out print locks; they deadlock too easily
     but are still useful to put back for special occasions.

  * let runcgo assembly switch to scheduler stack
    without involving scheduler directly.  because runcgo
    gets called from matchmg, it is too hard to keep it
    from being called on other stacks.

R=r
DELTA=94  (65 added, 18 deleted, 11 changed)
OCL=35591
CL=35604
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c
index f6f2bb2..4113002 100644
--- a/src/pkg/runtime/proc.c
+++ b/src/pkg/runtime/proc.c
@@ -95,7 +95,7 @@
 {
 	int32 n;
 	byte *p;
-	
+
 	allm = m;
 
 	mallocinit();
@@ -452,15 +452,6 @@
 	lock(&sched);
 	if(gosave(&m->sched) != 0){
 		gp = m->curg;
-		if(gp->status == Gcgocall){
-			// Runtime call into external code (FFI).
-			// When running with FFI, the scheduler stack is a
-			// native pthread stack, so it suffices to switch to the
-			// scheduler stack and make the call.
-			runcgo(gp->cgofn, gp->cgoarg);
-			gp->status = Grunning;
-			gogo(&gp->sched, 1);
-		}
 
 		// Jumped here via gosave/gogo, so didn't
 		// execute lock(&sched) above.