runtime: fix heap corruption during GC
The 'n' variable is used during rescan initiation in GC_END case,
but it's overwritten with chan capacity in GC_CHAN case.
As the result rescan is done with the wrong object size.
Fixes issue 5554.

R=golang-dev, khr
CC=golang-dev
https://codereview.appspot.com/9831043
Merge branch 'master' into gitfix