Move several effects from onBasePower to onModifyDamage

These effects should take place much later into damage calculation.