Allow for attacks to be interrupted

If the source or target of an attack is no longer in play, consider
the attack interrupted.
This can happen with Freezing Trap and Vaporize.
The ordering is not quite there yet as numAttacks still increases...
Implement Vaporize, with tests