Movement restrictions added based on piece type

Adds movement restrictions & validation for the individual pieces types
in the "ChessPiece" class/function. Although some code is used multiple
times (like checking if a path is cleared of obstructions) - moving that
code to a function that can be called is a future goal and not important
at this time.

closes #8