Refactoring in prep for impl of more spells.

* Added ash terrain type. (So there's a tile that has void mana on it
that you can use for the Blink spell's target.)
* Firebolt turns terrain into ash.
* Refactored mana change storage mechanism into ManaDelta class.
* Refactored mana delta determination so that it can be re-used while
iterating through possible target tiles.
* Changed around some mana requirement storage in SpellProto so there
can be aggregate requirements both relative to the caster and relative
to targets.