Ai player utility

helper functions for AI: testing if an object is in line of sight (and optionally if it's enabled), if a point is clear, and if an object is within a given angular field of view (optionally specified beyond a stock 45 degrees, as well as optionally checking if the target is enabled)
Note that `ShapeBaseObjectType` includes both `PlayerObjectType` and `ItemObjectType` at least in the current type hierarchy. Also, these three masks are additional to the original type mask and might break people's use of LOS. I doubt it's a critical issue, but I do wonder whether it's desirable for transient items like `Player`s and especially `Item`s to block LOS.