Implement move functions

We really need to get started with testing now because I am not sure if it works :>

Anyway there was some problems. The ClassicNode has to have mutation functions (I assume?) in order to mark or unmark positions in the board. So for the ClassicBoard to make use of this new functionality it has to use the ClassicNode instead of just Node. I did not want to cast down from Node to ClassicNode because it does not guarantee that it is a ClassicNode, instead the other way around was more safe.

I am not sure what to do if the computer using move() is suppose to return if there was no valid moves, now I just return a empty list.