AI helper functions: code cleanup, first pass

These function libraries are still work in progress and change
frequently, so the code cleanup is mostly just to make sure the syntax
is consistent with that used in the Micro AIs.  Changes or improvements
to the algorithms might be made at a later time.
Fix a typo
battle_calcs.lua: avoid using formula= in SUFs

It’s slow for finding units with moves or attacks left. The alternative
method of getting all units and then looping over the table with a
condition is much faster.
ai_helper.lua: avoid using table.remove

It’s slow. The inverse logic using table.insert is much faster,
especially for large tables.
Protect Unit MAI test scenario: use fight_on_without_leader=yes

So that the scenario continues even if the side 2 leader is killed.
Micro AIs: don't check for specific value of move rating

Don’t check whether rating equals (or doesn’t equal) -9e99 or the like,
verify that a valid move was found instead.  Also, avoid setting
variables to empty tables if not needed.
fix cb project file

First, rerverted changes starting with commit
09b0aad1f837353f80bb7319543053f5a9ae66a8, the other commits were
just fixups to that. The, manually went through the resulting diff
and added/removed files which I know of or think they actually should
be added/removed. And, of course, compiled and linked.