discard update

I made a whole bunch of changes into the discard code (to support cards like Dodecapod and Obstinate Baloth), it now passes along the SpellAbility object so I can detect whether it's an ability the opponent controls. Anyway, this was a massive amount of changes, so there might be a few bugs.