Piece-agnostic  solution to exclude moves that cause our king to be exposed to check  #80
Promotion also is blocked when king becomes exposed to check  #80
Integration test to validate No piece can be moved that will either expose the king of the same colour to  leave that king in check. #80
Check is considered even if such pieces are constrained from moving to that square because they would then leave or place their own king in check. Implements #80