SDLSurfaceSprite2D: consolidate SetSurfaceRLE calls into a private function

this is hopefully compatible with SDL 1.2
SpriteRenderer: remove bogus RLE check

only BAM sprites go though here anyway
SDLSurfaceSprite2D: apparently constructors can have default arguments

lets use that instead of having 2
Sprite: move freePixels ivar to base

pixels is assumed to be owned by the base class unless freePixels is false
Video: Migrate generic methods to base

there is no point in overriding these methods
Sprite/Video: create some SDL_surface manipulation methods

SDLSprite only has its surface to worry about and SDLVideo has many so lets have the surface manipulation be part of SDLVideo instead.
make SetSurfacePalette, SetSurfacePixel, and GetSurfacePixel static methods of SDLVideo class.
Sprite: modify get/set colorkey methods

if a sprite is paletted then the colorkey is an index to the palette, otherwise the colorkey is a pixel value
We should probably consider adding a method to set colorkey with a Color struct, but we currently have no need
SDLSurfaceSprite: be compatible with bpps less than 8
SDLSurfaceSprite: copying the flags will set RLE

RLE memeber is always false anyway so this would likely prevent it.