Pull some validation logic in canMove.
Add move pattern for knight.