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'
Did BoardStates cpy constructor
Changed class structure and fixed up main

main needs to parse a list of boardStates. Not quite working yet.
Did some stuff most is worthless