new board constructor

Board is keeping it's reference to the solver, because it needs to check
the goal configuration (want it to do this upon being made for minimal
run time)