CAST_SPELL and SPELL_CAST need to be cleaned up
Many event types in xmage exist in pairs, with one type named in the present tense or active voice and the second event named in the past tense or passive voice. For example we have DISCARD_CARD and DISCARDED_CARD, DRAW_CARD and DREW_CARD, DECLARE_ATTACKER and ATTACKER_DECLARED. Normally, the first event type in such a pair is used for checking against replacement effects and is never actually fired, while the second event in the pair is the one that's fired and that watchers and triggered abilities see.
CAST_SPELL and SPELL_CAST look like they should be one such pair of event types, and in most respects they are, but CAST_SPELL is an event that xmage actually fires and that is watched by at least two watchers (FirstSpellCastThisTurnWatcher which is in the "common" package but is only used by one card, and WildMagicSorcererWatcher). Moreover, the CAST_SPELL event that is fired is a completely different object from the one that is checked against replacement effects.
I think we should try to clean up this state of affairs so that the two event types are more consistent with the other "do_thing/thing_done" pairs.