Guardian MAIs: add syntax translation and deprecation message

So that the ai_type=guardian_unit guardian_type=... syntax still works
for the time being.
Guardian MAIs: add individual engine macros for each AI

... so that only the code for the guardian AI used is loaded.
Add deprecation message for MICRO_AI_GUARDIAN macro
Guardian MAIs: rename internal engine functions and CAs

This shouldn't affect anything else, it is simply done for consistency
(to reflect the recent syntax changes).
Animal MAI engine macros: update ids in the [ai] tags

This doesn't really affect anything, but should be done for consistency
anyway.
Patrols MAI test scenario: switch to new guardian MAI syntax

There is a guardian unit in the Patrols scenario
Guardian MAI test scenario: switch to new guardian MAI syntax
Lua AI: make persistent data variable work with external CAs

It was previously being set correctly by the engine, but was not
accessible from the Lua AI.
Lua AI external CAs: allow parameters for eval/exec functions

It is now possible to call the evaluation and execution functions with
sets of parameters.  These are transferred as strings containing
serialized Lua tables (without the {}), similar to how it is done for
"normal" CAs.
Lua AI external CAs: change order of eval/exec parameters

The table with configuration parameters is needed much more frequently
than the persistent data variable, so it should come first.
[micro_ai] tag: add code for using external CAs

This means that we can get rid of the engine definition macros once all
MAIs have been switched to external CAs.
Lurkers MAI: switch to using external CAs
Goto MAI: switch to using external CAs
Messenger MAI: switch to using external CAs
desktop_util: Make ShellExecute() result cast 64-bit-safe

int is not a sufficiently large type for casting a pointer type on
64-bit Windows, so use ptrdiff_t instead.

Tested by vultraz.
Animation WML: remove duration 1 special sound frames not required after e994f92fa328d1318b203c9ea27f15202a080f7f
Hang Out MAI: switch to using external CAs
Simple Attack MAI: switch to using external CAs
Patrol MAI: change from behavior CA to side-wide CA

Only side-wide CAs can use the external CAs, and there are some other
changes we want to make as well that require this.
Patrol MAI: switch to using external CAs

Also need to disable the zone guardian in the scenario for the time
being, until the guardian MAIs have also been converted.