Add the Board::copy method

Also some tests for it, and a bonus optimisation on Board::clear