Adding more cases defining invalid moves.
Reorganized tests a bit.

Also added a test that if a move requested is not legal, then requestMove should
return false.