Paralyze implemented

This is my first time changing common code, so I thought I would have someone review it before getting into master.

I thought of a few approaches to try to make the doIfCostPaid class a bit more re-usable and ultimately decided on inheritance.  My other thoughts were to add a function pointer to the constructor args, or make doIfCostPaid abstract and provide concrete implementations for doIfYouPayCost and doIfAttachedToControllerPaysCost.

If someone thinks there is a better way to make it more re-usable, please let me know.