remove numNodesTried from HearthTreeNode

Reduce memory usage in preparation for further work
int -> byte in PlayerModel
duplicate node pruning for depth first board state factory

DepthBoardStateFactory now keeps a list of all unique boardModel that
it has simulated already.  If the new node that it creates is a
duplicate of a previous node, DepthBoardStateFactory will discard the
node and will not create its children nodes.  Enabling this feature
should make the simulation runs much faster at the expense of increased
memory usage.
Merge branch 'master' of https://github.com/oyachai/HearthSim