Separated GameGrid from Board

GameGrid is now a first class member of the battleship project with its
own tests and benchmarks. This did raise an issue with the algorithm not
finding the correct number of options and so the optimisations were
removed, fixing the problem.
Enforced use of uint8

I also added some more tests to the LocateSpace function.