Region buckets

Use regions of the map as buckets so as not to iterate through all the
areas every globalstep. Hash lookup based on rough position, then
iterate through areas for that region.