Surface fixes

-Surfaces now use the textureStruct so they can actually be used as
textures (useful for full screen effects/water reflections etc.).
-screen_refresh() will only be called on screen buffer during
screen_redraw(). Screen_refresh() shouldn't actually be inside
screen_redraw(). They are two separate functions for a reason. It should
be put AFTER screen_redraw() in some main loop. This also fixed
flickering issues when using screen_redraw() on surfaces.
-Fixed graphics_delete_texture() so it actually deletes the texture.
Otherwise it was a memory leak.