Factor out triangle_2area/3 which takes float3
Removed the extra list iterating in poly_2area()

It should now compute 2areas without any extra allocs