Board cells are now boost::optional<unsigned int>
Added utility type array2d
Simplified the board input