New scripts and targeting changes

Large new update. All previous versions are no longer compatible with
the updated versions.

Bugfix: Targeting was ignoring some map squares in all routines
Addition : Targeting will now take into account syndrome classes,
creature classes, creature castes, and tokens. Behaves similarly to how
interactions behave in vanilla. See more below.
New Script: addsyndrome.lua, now you can add syndromes (that are
specified in an inorganic) through a script. This allows for syndrome
additions in various other scripts that only allow script inputs

The addition is actually a fairly large and complex deal. It adds
several new [SYN_CLASS] tags that are needed, but makes up for this
inconvenience with great flexibility and usability. Some example of
things you can do with the new targeting system;
Allow only specific creatures
Allow only specific creature classes
Allow only specific syndrome classes (NOT POSSIBLE IN VANILLA)
Forbid all of the above
Require and Forbid based on a large amount of different tags (MANY MORE
THAN VANILLA)

The tags that are eligible for requireing/forbidding are listed in
tokens.txt, to give an example you can now make syndromes and other
interactions that only target megabeasts, demons, titans, fliers,
amphibious, etc.... (pretty much anything that is possible to be
specified in the raws)

NOTE: I have taken the Use and Example sections of each script off of
the forums. They can still be found in the actual script files.