optimize board_play()
castling branch is now tested in the piece == KING branch, which is not so hot:
- first, play the caslting move as KxR normally.
- then, in the castling branch, do the necessary corrections.
this also eliminates a goto, and better factorizes some code, which is nice.

speed gain ~= 2.8% on perft test-suite.