Implement a simple modifiable behavior tree

Remove previous inflexible and buggy system.
Add missing values for rush heuristic
Improve movement between computed waypoints.

Always move directly to the waypoint.
Slow aim to the waypoint to make it more visually pleasing to spectators.
Only loop through level.num_entities entities instead of MAX_GENTITIES
Use BotTargetIsVisible for determining enemy visibility

Consistent with BotActionFight, and utilizes trap_TraceNoEnts to improve performance.
New way to aim at enemies
Remove unused bot functions and definitions
Cleanup movement code
Make bot code formating consistent
Use the parser's built in token subtypes for condition ops
Create a token list before reading the behavior tree

This allows the use of childless condition nodes without the need for open and closing braces
Replace node enums and switch statements with function pointers
Make most of the bot code compilable under C89

Eventually, the last bits of C++ will be moved to the engine code
Fix enemy aiming for chaingun
Check to make sure bot evolution was successful
Improve route replanning
Merge branch 'master' into bots2

Fixed up calls to Info_SetValueForKey().
Kill a warning about the scope of the definition of struct AIGenericNode_s.
Don't free behaviour trees when deleting all bots.

Also, rename the function to G_BotDelAllBots – “/bot del all”.
Set the trees pointer to NULL after freeing it.