Allow a polygon to exceed 40 vertices.

This updates `poly.h` without API incompatible changes to support polygons in excess of 40 vertexes.

The original 40v buffer is still allocated as part of every polygon, but overflowing the buffer creates a dynamically allocated buffer that grows at a rate of `2.0` when the limit is reached.

The original static buffer is preserved to avoid a great deal of allocation in the hot path, where 40 verts coveres the majority of cases.