[dev.garbage] runtime: fix a few checkmark bugs
[dev.garbage] runtime: fix a few checkmark bugs

- Some sequencing issues with stopping the first gc_m round
at the right place to set up correctly for the second round.

- atomicxor8 is not idempotent; avoid xor.

- Maintain BitsDead type bits correctly; see long comment added.

- Enable checkmark phase by default for now.

LGTM=rlh
R=rlh
CC=golang-codereviews
https://codereview.appspot.com/171090043

bryanxu/go-zh,d0f/go-zh,webfd/go-zh,bryanxu/go-zh,bryanxu/go-zh,d0f/go-zh,bryanxu/go-zh,webfd/go-zh,webfd/go-zh,d0f/go-zh,webfd/go-zh,bryanxu/go-zh,d0f/go-zh,webfd/go-zh,webfd/go-zh,bryanxu/go-zh,d0f/go-zh,webfd/go-zh,d0f/go-zh,d0f/go-zh,d0f/go-zh,bryanxu/go-zh,webfd/go-zh,bryanxu/go-zh