Damage function moved into GameState.
Compute average damage, useful for AI lookahead.
Tried to evaluate each possible action for score.

This doesn't work.  The Unit pointers in Action objects are linked to
the GameState from which they were created.  You can't execute them on a
copy of GameState.
Store units by entity ID.

This is in preparation for referring to units by entity id instead of by
pointer.  That will decouple Action objects from the GameState instance
that created them.
Added null unit reference.

This will hopefully simplify some code going forward.
Start referring to units by entity id.
Return units by reference instead of by pointer.