Refactoring for actions.

I found that I hit a road block while trying to implement attacks with
the last system. To make adding actions other than effects easier, I
created that CardAction class which basically does what the old
CardEffect class use to do but it can be used for any action. I also
changed the way chaining is handled and variable names to reflect the
changes made while refactoring.