Undo attack

Here is a minimal set of changes to support undoing of the last attack in the list.
The Attack model features a function that does the opposite of doDamange; the function is triggered directly by "pop"ping the AttackCollection.
Both the AttackInfo and AttackSummary views feature new "undo" clickable elements, that "pop" the AttackCollection.   
The AttackList and DamageHeatMap views listen to the "remove" event of the AttackCollection.  In particular AttackList re-renders at every change, so that the "undo" clickable element is present only for the last attack in the list, to avoid confusing users.