clean up gc code, rearrange some tests
clean up gc code, rearrange some tests

Ignore-this: 654cf92de7199b56d1ca6a0eeb5d6e20

darcs-hash:d87e5b8494d3c29ff4d73444fc61c01a2c46c194

dpwright/jhc,dpwright/jhc,dpwright/jhc,dpwright/jhc