Refined piece type reflection.

Previously I just used [MajorCompass].  This
did not allow blocking of laser without dying
and made some things less type safe.
Initial game loop.

Looks like there's still something wrong with laser.