Card Events

Added a CardEventManager and abstract CardEffect classes.
These will be used to trigger card effects during play.