Remove type-checking @properties on piece class in favor of duck typing.
Merge branch 'oo-game-logic_new-caching' of github.com:tsnaomi/Chessnut into oo-game-logic_new-caching
Remove commented-out QueensideRook and KingsideRook code.
Implement Knight's generate_actual_cache.
Remove tests for old @properties on pieces.
Comment out test for moving pieces off board; it should eventually move to test_game.py.
Fix Knight's _generate_naive_cache method.
Implement test for Knight's _generate_actual_cache method.
Tweak game class: test for _generate_actual_cache on Knight now passes.
Add has_moved to Pawn as alternate strategy for tracking legality of initial move.
Add _generate_actual_cache method to Pawn class.
Add has_moved updating to move_to of pawn. Move called to super in Pawn __init__.
Add test for actual_moves generation for Pawns.
Update test for Pawn's naive_moves cache.
Add testing for has_moved's effect on naive_captures generation in Pawns.
Tweak test for Pawn actual_moves generation. Test is not complete.
Begin to implement first_blocked_space_from in game class.