Get rid of voodoo Card.__new__() system

We're back to a BaseCard base class. A long, long time ago we changed
that to __new__ logic but the several rewrites since have made that
unnecessary. We now have a Card factory function again.

This allows us to prepare the terrain a bit for better virtual cards.