runtime: replace unions with structs
Unions can break precise GC.
Update issue 5193.

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/8456043
runtime: change Lock from union to struct
Unions can break precise GC.
Update issue 5193.

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/8457043
runtime: change Note from union to struct
Unions can break precise GC.
Update issue 5193.

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