BUG FOUND!

Apparently what happens is that while the KingCheckFilter is trying out various
moves, it overwrites on previously occupied squares. Hence when we undo, the
test-move square is then null.