improved clarity of knight movement
added ability to check if an index is on the board
made squares_between functional for horizontal and diagonal moves
made squares_between functional for diagonal moves
added ability to check if there is a piece between two locations
refactored valid_move? across all classes to check if pieces are in between