Cleaned out more excess
Cleanup and fix Board.make/undo-move

Now the general (usable from UCIBoard) and the specific (used by move evaluation
testing) make-move and undo-move functions are up-to-speed with the new API.

- Implemented a basic Bitboard structure to house the bitboard functionality.
- The extra information stored in Move comes in very useful for make/undo-move.
- It would be nice to simplify the code complexity in undo-move but this comes
  at the cost of significant memory usage. To restore the board using a memory
  swap would require storing the 12 bitboards along with the board-status
  information, a total of 100 bytes. The method implemented in this commit to
  restore board state after make-move requires maintaining simply the board-status.
  This saves 96 bytes of memory. Of course, there is a trade-off in the complexity
  of the code in undo-move. Analyze again at a later time to determine what
  the better trade-off is.