complete FEN support
Note that set_pos() does not check for all possible syntax errors, for members of the FEN past the turn of play. It would complicate the code too much. Illegal characters can still be passed in the castling rights and en-passant fields, and would be processed silently (OK for castling rights, but may assert-crash for en-passant).