Add CMake based build system
Add board elements for holdings, en passant square

Make sure turn is set to a known state when the board is cleared.
Print content of holdings when printing board output.
Parse and output holdings field in FEN string

Also skip extra whitespace that may be present in the FEN.
We still need to process castling and en-passant states.
Add get_oppupied function for board state.
Merge branch 'master' into makemove
Make eval_t work on clang

Clang doesn't support scaler*vector operations for vectors defined using
vector_size, but it does if you use ext_vector_type. Unfortuately this
doesn't seem to work using GCC, so we need to use a different version for
the two different compilers. Annoying.
Remove option for -fast switch; it is specific to Apple's GCC
Merge branch 'master' into makemove

Conflicts:
	src/board.c
	src/board.h
	src/types.h
Delete duplicate definition.
Add move classifier, to be used with make-move.
Expose set/clear_square.

Needed for make/unmakemove, which fit better in move.c
Remove static prototype for set/clear_square
Add make/unmakemove

Add an "UndoInfo" type, which contains information needed to revert a move.
This includes the move classification as determined by makemove(), which
needs to be stored because castling moves cannot be recognised (in FRC) by
retrograde analysis.

Castling moves are not handled yet, because the castle masks are not
available. All other moves should work, but are untested.

Functions placed in move.c rather than board.c because it feels wrong to
include the UndoInfo there. Arguably, they should go with the gamestate
instead.
Add code to derive castling bitmasks, for FRC

Adopted from Sjaak, these define bitmasks for the pieces that must have
their init bits set (the king and rook), the squares that should be empty
(the squares in between, excluding the king and the rook. These masks could
be 0 in FRC if king and rook start next to eachother), and the squares that
may not be attacked by an enemy piece (for legal castling generation).

Stores the king/rook origin squares, for the purpose of making make/unmake
moves easier.
Derive castling masks when seting up position

Currently assumes the starting position from normal chess. Needs to derive
the rights from the FEN in FRC.
Make castling on makemove() work.

Not yet implemented for unmake, which could use some information from
makemove().
Fix typos.
Unmake castling moves

Add move flags for king and queen-side castling, as well as for RxK
castling. This greatly simplifies unmake for castling moves.
Add from/to_holdings functions to board

Update holdings when a piece is dropped on the board upon makemove.