Attck table wrapper
Board::st() returns a const reference. The whole idea behind it, is to save having to define tons of wappers, while perserving the read-onlyness.
However, for arrays, another type of security should be added: bounds assert-checking. Especially with the st().attacks[][] array:
- it's a double array, and it's too easy to write attacks[piece][color] instead of attacks[color][piece]
- piece must be PAWN, KNIGHT, ROOK, KING, or NO_PIECE but not QUEEN! NO_PIECE is an aggregate of all attacks (by color) and QUEEN attacks are dispatched in their BISHOP and ROOK components.