Clean up and type variables for Path and Paths.
Refactored most of the existing logic to simplify. All the Check and mate tests now pass. One Castling test is still failing (Do not allow the king to pass through check when castling).