Get rid of inheritance on XMLCard

This commit removes all the inheritance weirdness that we had
going on.
XML is now parsed only once at initialization time. We build a
card database out of it and make it all importable in the new
fireplace.cards module (previously fireplace.carddata).
This also allows us to get rid of inheritance on Card in the
card definitions themselves. Incidentally, this lets us clean up
the imports in every card set and we now just do:
  from ..utils import *

Since we renamed carddata to cards, it's also an excellent
occasion to reorganize the card sets. Where we were previously
splitting between spells and minions, per class and very
inconsistently, we are now splitting between three core sets:
game, classic and naxxramas. The "removed" set is also there but
is not actually imported.

We are also updating hearthstone-data to support GVG. There was
a pretty significant change in the format which prompted this
whole rewrite.

Peace.
Trigger MINION_SUMMONED appropriately once again

Needs more tests!
Add tests for Northshire Cleric
Update implemented-cards script for the new-style cardxml
Implement Violet Teacher, Captain Greeksink, Bolstered
Reconcile hasAura, aura and Aura into one property
Use a _PROPERTY for Windfury
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
Move aura logic check to base Card class

Auras are not just for minions.
Well, that's a bit theoretical anyway. We're doing this because we
want Enrages to be able to have Auras, but there is no pre-gvg card
that actually has an aura other than minions.
In GVG, Cogmaster's Wrench (Weapon) does have an Aura which makes a
lot of sense.

That said, Spells cannot have auras and we should split those out
into a class that has less "I'm always on the board" logic.

Note that because of this, we have to check that the source of an
aura is a minion before checking for adjacentBuff as the aura can
now come from a non-field entity.
Properly return the entity on buff()

Fixes a bug with aura updates
Fix broken Aura.destroy()

How did this go unnoticed?
Implement targeting.TARGET_(FRIENDLY|ENEMY)_WEAPON
Implement Spiteful Smith, with tests
Implement Tauren Warrior, Amani Berserker, Angry Chicken and Grommash Hellscream
Implement Flamestrike, Holy Smite
Implement the old Dagger Mastery
Fix Ancestral Healing and add tests
Simplify action() targeting logic