screen: move src/dst rects into blits struct

No need to keep separate copies of them plus pointers to them in the
blits struct.
images: add image index lookup APIs
game: Remove random generator function pointers

Replace with a simple macro to generate rand value up to a max value.

The genX_Y() functions are still being called normally in some places (i.e.
not as function pointers).
game: remove free_entities() function

No longer using dynamic allocation.
Print SDL_GetError() as string, not int

SDL_GetError() returns a string.
game: use blit list for cleanup draws too
game entity: make Game pointer a static member

There should be only one game in progress, so no need to keep duplicate
pointers to it.
game entity: remove pointer to current image

The current image can be accessed with "images[image_num]"
game entity: convert explosion consts to #defines
game entity: promote images to per-type property

Instead of storing a copy of the image array in every object, store it as
part of the entity type properties.
Move SDL blitting and scheduling out of game.cpp

It should be encapsulated in its own file, so class Game is not dependent
on SDL drawing functions.
Create class for video functions

Store it in class Game, give class GameEntity a pointer to it.
game: remove "static" modifier from vars used only locally
status: convert const ints to #defines