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 pull request #48 from MrHen/feature/code_coverage

Feature/code coverage
Merge branch 'master' of https://github.com/oyachai/HearthSim
(re)Implemented Succubus
Implemented Dread Corsair

Also took the liberty of renaming weaponCharge_ to weaponCharge and
weaponDamage_ to weaponDamage.
implemented Frothing Berserker
implemented Mana Wyrm
implemented Mana Addict
Implemented Maexxna and Emperor Cobra
Remove unneeded endTurn override.
Remove blank methods from Card into interfaces. Refactor the useOn methods to allow for specifying target index instead of target minion.
Remove a bunch of one-time-use target variables now that we can simply specify the target index.
Refactor playBegin into interface.
Refactor onPlayResolve into its own interface
Refactored minionPlaced into its own interface
Refactored minionPlayed into its own interface
Refactor minionSummon into its own interface
Remove unused method