Castling and bugfixes

-Castling added! Support for custom castling rules too, though it's
rather specific. A piece that is allowed to castle can move to a place
that a castle can also move to if the castle can move adjacent to the
original piece and the move is within the original pieces castle range
(2 for a normal king).  Could do some weird things with castles that
have strange movement, but that's your fault for making strange moving
castles!
-Added possibility for a piece being unable to take and check (separate)
-added royal being a distinct attribute rather than just based on name
-fixed a bug where pieces would check if the opposite color king was in
check when making their move
-added adjacent_squares function, used for castling but may have other
uses in the future
-fixed bug where extend was used instead of append for returning squares
-fixed threatened squares function
-Added saving and loading of game states. Actually plays through the
game to that point, currently doesn't work if the current game has
already started but that's an easy fix
-moves in game_loop can now be "a2 to a4" or "a2 a4" either will work