Implement Enrage, with Raging Worgen and its tests

Enrage is a virtual Card which has most of the properties of a real
card and an actual Entity. It is defined in the CardDef.Enrage nested
class.
This allows us to implement very complex functionality in Enrage, like
a real buff card would have.
Always copy the tags when creating a new Aura

Let's avoid the mistakes of the past...
Move all weapon logic to the Hero class