Refactored geographic calculations

- Created GeoMathHelper to perform various operations.
- Minimized expansive calls to lua during calculations.
Filtering of successive identical jobs.

- Added mechanism for job filtering in JobQueue.
- Added ExecutionQueue.BeginCallSelfUnique().
- ProcessLocation is now queue using ExecutionQueue.BeginCallSelfUnique,
ensuring that only one job of this kind runs.

This fixes long times of startup in certain cartridges.
Merge remote-tracking branch 'origin/optimization'