runtime: reset typed dangling pointer
If for whatever reason seh points into Go heap region,
the dangling pointer will cause memory corruption during GC.
Update issue 5193.

R=golang-dev, alex.brainman, iant
CC=golang-dev
https://codereview.appspot.com/8402045
runtime: reset dangling typed pointer
+untype it because it can point to different types
Update issue 5193.

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/8454043
runtime: replace union in MHeap with a struct
Unions break precise GC.
Update issue 5193.

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/8368044