Started testing of isMoveValid

Generalized the functionality of the extra space in Move. Now using
it to encode various pieces of information, including whether a
move is an enpassant capture move. Using a heuristic was possible
to determine that information but was non-performant.
Use the isEnpassantCaptureMove idiom in move validation