MAINT: ppoly: refactor evaluations

allocate memory, reshape x, y etc in PolyBase.

This makes it a bit more straightforward for subclasses (eg, custom out-of-bounds behavior).