adds isCheck and isMate to Move.decode output; does some minor refactorings