Added unit Zombie.

All units killed by Zombies become Zombies.  We know from Heroes 2 this
was OP with Ghosts.  Zombies have much lower HP and attack strength than
Ghosts did.  We'll see if this is still OP.
Refactor drawing unit size.
Ensure zombie and double-strike anims look right.
Try to improve AI performance.

Assume that flying units might as well always attack since they can't be
retaliated against.  This speeds up AI computations when there are lots
of flyers on the battlefield.
Added unit Giant Spider.
Limited range of flying units.

Units being able to fly anywhere totally ruins AI performance.  It also
ruins the tactical nature of the game because you can't defend ranged
units against them.  We're going to try limiting their range to see if
that helps.

The AI also has a hard time with a hopeless battle situation, especially
because the units aren't balanced right now.  The score needs to
accurately reflect the likelihood that one side is winning.
Improved some AI behaviors.

Prefer attacking without retailiation to skipping your turn.
Round up fractional damage to give a better estimate.
Include HP lost as part of the score to let the AI see value in wearing
down a large unit.
Limited flying units to 1 hex movement.

Being able to fly more than one hex was such a tactical advantage there
was no reason one wouldn't create an army of all fliers.  The only
remaining advantage is no-retaliation (which is still good).
Stalemate after several turns of no units killed.

There were certain situations where the game wouldn't ever end.  Units
with more than one move can prolong the game indefinitely by just moving
endlessly around the board.  Trolls can regenerate all damage to the
point where you can't kill any.

This should improve AI performance a bit because it can aggressively
play for a draw in cases where it would certainly lose otherwise.