Implement some priest spells
Add an enum for Power requirements
Reimplement targeting on top of PlayRequirements
Add some tests for cleave
Implement min and max target attack requirements
Make cards unplayable if they require a target that is not there
Implement REQ_TARGET_WITH_RACE
Implement Sacrificial Pact
Better logging in Card.play()
Implement almost every other used PlayRequirement
Allow comparison between cards by their id
Make secrets always unique
Implement stealth attribute
Implement most warlock spells
Implement an Entity.isDamaged() helper
Fix Claw and Bite
Implement most remaining warrior spells
Finish implementing non-Choose One druid spells
Move secret logic to a new Secret class
Rewrite the summon/play player/card chain

- Player.play(card) now plays a card from the Player's hand.
- Player.summon(card) plays an arbitrary card for the Player
- Card.play() is a helper for Player.play(card)
- Card.summon() handles the class-specific card summoning logic
- Card.activate() will trigger the activate script from the card data
- Hero Powers are now properly "played" through activate() and summoned
  through play() or summon()