Handle st_lwPolygon::surf for 64bit.

Fix multiple compiler warnings and properly handle st_lwPolygon::surf for 64bit.

Changed surf member to now be a union of a intptr_t index and a lwSurface*.
Index member has to be signed to prevent overflow (by assigning a possibly negative short).
For most platforms, sizeof(int*) should be the same as sizeof(lwSurface*), though this might still be a race condition/annoyance when sizeof(int*) > sizeof(lwSurface*).