Merge branch 'experimental' into BleedingEdge
Adds debug logging when GetBestTarget comes back with NULL for highvaluetargets and lowvaluetargets (wtf!)

Changes Combat to ONLY call GetBestTarget when we have something targeted. We cant shoot what we don't have targeted. Combat should be targeting the right things if it is not that needs to be fixed elsewhere.
Added IsLargeCollidable to entitycache
Verify that whatever we are Approaching or Orbiting is still on grid. If we killed it eve may be set to orbit or approach an entity that doesn't exist

(in which case it goes off in a straight line, but is technically still approaching or orbiting(ffs! really?!))
only output these logging lines if there are entities to list...
compile fix
The mission actions are now more consistent. We do not prioritize frigates anymore (here, E-war, including scrambling, etc gets handled elsewhere)

We DO still wait on all frigates that are (in range, aggressed or whatever makes sense for that action) to be handled before moving onto the next action
Combat.cs WILL shoot frigates once all priority targets are exhausted
Drones.cs WILL shoot frigates once all [mainly e-war, including scrambling] priority targets are exhausted
CombatMissionCtrl will no longer add frigates to the PrimaryWeapon Priority target list (previous commit) this extends that behavior to check to make sure we can hit the (now non-priority) frigate before choosing it as a target to shoot at. If the frigate gets too close starts going too fast, etc (when you have turrets mounted) it should switch targets to something it CAN hit. If their is nothing left but things you cant hit it WILL try to hit them (should this be configurable?!)
fix safespot panic bug. If their are no safespots available use the sun.
Fix CamelCase of DistanceToBm (cosmetic change)
2nd round of fixes for safespot bookmark panic stuff w no station in local
When expecting a list, null is not an option, you can however return an empty list.
Move tabulation of lost drones to CombatMissionsBehavior and out of the DroneStats so that lost drones also show for just mission stats
Add to ClearPocket and its variants that we need to wait on any drone priority targets and primary weapon priority targets before considering the action done...
When using the drop action keep track of how many times we have tried to open the cargo of the target and error after 5 tries.

If it does go into error (looping) it will spam the console log and keep running defense (and combat) but will more or less be stopped. this should only happen if we dont know how to detect the container is open or the container doesnt allow you to open it at this time

Is their a better solution to this?
Cleanup combat.cs, added Regions, eventually this needs quite a few methods created to break this up a bit.

Added Targeting of a single non-aggressed NPC (the closest one) if we have nothing targeting us
Fix compiling: add combatTargets
only consider combtTargets that are within our max range (we cant target anything beyond our max range anyway ad CombatMissionCtrl should bring us into range without it being targeted)
Add CustomsOffices to IsBadIdea
iteration....
better