Initial Refactoring of BoardState

Shifted board related methods into BoardState class. Will do work on
''heuristics'' next to make canPlace(); useable.
Merge remote-tracking branch 'origin/Bens_Branch'