Added preliminary Chess960 support.

load_pgn() is now able parse Chess960 PGN files.  Unit tests needed.
Merge remote-tracking branch 'origin/960' into chess960

* origin/960:
  Added preliminary Chess960 support.

Conflicts:
	chess.js
publish chess960.js
configure game type on instanciation
add tests for chess960
fix chess960 castle when king or rook stays on same square
add more chess960 tests
hackfix chess960 castling. Damn the way this thing works is weird.

To verify a move is legal, chess.js applies it to the board, mutating it,
then verifies the king is safe, then undoes the move.
Of course it doesn't work properly.
custom version, removing stuff lichess doesn't need
more chess960 tests and fixes
more chess960 castle tests and hackfixes
fix chess960 edge case
drop tests of removed functions
handle over-disambiguated PGN move SANs