The checkLegality parameter is also user to disambiguate two moves if one is not legal, this can happen parsing SAN notation, ie. two knight moves if one leaves the king in check.
Previously in this case it was returning the first move (BUG).
We add a test case for this situation and the MoveTest is renamed to ParseMoveTest.