add polar moment and moment caching to geom::Polygon
convert invalid cache values to NAN in geom::Polygon