Implemented card colors

This necessitated changing Card to an abstract class from an interface, as
there needed to be a default implementation of getColors() based on the colors
in the Card's manaCost.

Certain cards will want to override getColors(), namely those that have no mana
cost and those that have a Color Identity not equal to the colors in their mana
cost, such as Ghostfire.