[wip] Support complex polygons for geofences

This is a rough draft up for early review. I think this algorithm is correct, but I'd like to get many more pairs of eyes on it.

Basically, if the outer ring or any inner ring(s) have point in question, we continue to cache an 'x' indicating that we must perform actual point-in-polygon searches.

Otherwise, we keep 'i's and respect those as caches, deleting any 'i's that are consumed entirely by inner circles.

cc @countrodrigo @jedhorne @kmnovak