Update the header notes
Remove history from Board

The move history can be maintained by the UCI engine.
Both the board-status and move history were maintained by Board
to make undo-move and PGN serialization straightforward.
This is data-heavy at little benefit.
It is possible to provide the information for undo-move in a
less data-heavy manner. PGN serialization is also separable.
Clarify what the surface of the board means

I have used the board "surface" to provide O(1) access to what piece is on a square.
Since it appears at the moment that this functionality is still necessary, even
though it would be nice to trim off excess weight, I have trimmed up the amount
of memory it uses by packing the data into a smaller, encoded format.

The new type Surface fits all 64 pieces into a memory-efficient 32-byte structure.