Implement SDL_Surface refcounting

This implements reference counting for SDL_Surfaces as documented [here](http://sdl.beuc.net/sdl.wiki/SDL_Surface).