introduce the concept of "overlaps" to tiles

to keep track of how much smoke was added, and to average it if necessary.
fix explosive radii for incendiary weapons.
add a bool to BattleUnit to avoid doing fire damage multiple times.
remove VoxelHeight function.

doesn't work properly, only called in one place, and there's a better way
to do this.
_smoke acts as _intensity when _fire > 0

rewrites a bunch of smoke and fire functions. smoke may differ slightly
from the original, as there was a bug to do with the "averaging" the smoke
values at the end of the turn, where _smoke values were clamped to 15,
and then divided by _overlaps.
(clamp should only apply if _overlaps <= 1, and be applied after the
division in any other scenario)
smoke and fire can no longer occupy the same tile, but fire will obscure
line of sight.
alter tile "end of turn" procedures

average the smoke we got this turn, and if we're on fire/smoke, damage the
unit standing here.
rewrite fire/smoke spreading code

vanilla is the best flavour.