ENH: speedup geometry_area_weights

This is a rebased version of #1123.