Sprite2D: add colorkey ivar
Sprite2D: add renderFlags ivar
Sprite2D: add copy constructor

and copy method for copying subclasses with baseclass pointers
Add a BAMSprite2D subclass of Sprite2D

BAMSprite2D absorbs the old Sprite2D_BAM_Internal class
removes ability for video driver to create BAMsprites since bam data should be handled exclusively via BAMImporter
SDLVideo: remove useless casts
Refactor video driver sprite creation

CreateSprite8() now enforces 8bpp as the name implies and also takes a Palette* instead of void* (Color*)
A new method CreatePalettedSprite() will fill in for creating non 8bpp paletted sprites using an array of Colors
Create an SDLSurfaceSprite2D subclass

Sprite2D is now an abstract base class
Sprites: move colorkey ivar to BAM subclass

make colorkey functions pure virtual
Sprites: refactor sprite destruction

previously the video driver managed destroying private sprite data. rewrite to make each subclass responsible for its own data
Sprite/video: remove dead code

GetPalette is pure virtual and the video driver code died when we implemented the SDLSurfaceSprite subclass
Sprite/Video: make GetPixel a function of spriteclasses

convert to pure virtual for base class
DuplicateSprite: simply do a sprite->copy() call
SDLVideo: use GetColorKey sprite method over directly using SDL
Sprite: add method to get the palette color array for a sprite

this can depend on sprite bpp unlike GetPalette which produces a 256 color palette
SDLSurfaceSprite2D: add method for getting the SDL_Surface

video driver will need this for blitting
Sprite: add ConvertFormatTo method

returns true if sprite converted successfully
Sprites: remove void* vptr member
Video: remove DuplicateSpriteMethod alltogether

use spritexx::copy() instead
remove unnecessary dependancies on video.h
SDLSurfaceSprite2D: consolidate SetSurfaceRLE calls into a private function

this is hopefully compatible with SDL 1.2