Refactoring AI code, documentation, AIs walk away from closing doors

I refactored AIFollow, AIPursue, and AIActivate to use a common pathing helper function, which majorly cut down on the code of all of them. Other packages (Escort?) should be easy to change to use this. It also introduced some common features between them. (Task #1316)

In addition I documented a lot of random code as much as I could. This includes a minor typedef to make more sense of frequently confusing scripting parameters (L is an int? And S is the same as c? There appears to be absolutely no guide to this). I also moved all Doxygen comments which were below code to above them; while it makes no difference in the compiled documentation it was done in the interests of standardization and ease of reading the code.

When presented with an untrapped door that needs to be gone through, an actor will attempt to open it. When a door hits an actor, they will retreat away from the door (Note that this needs some work, as they retreat away from the center of the door (it might be the hinge actually), instead of the area the door swings out (Causes some odd behavior when you close the door right when the actor enters, they walk backwards into the door instead of forward to clear it. While not common, it's not rare enough to ignore imho)). (Feature #1113)