runtime: ensure forward progress of runtime.Gosched() for locked goroutines
The removed code leads to the situation when M executes the same locked G again
and again.
This is https://codereview.appspot.com/7310096 but with return instead of break
in the nested switch.
Fixes issue 4820.

R=golang-dev, alex.brainman, rsc
CC=golang-dev
https://codereview.appspot.com/7304102
runtime: fix deadlock detector false negative
Fixes issue 4819.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7322086