Use indexes instead of SDL_surfaces to store images

This removes game entity's dependency on SDL.

- Hard-coded entity dimensions as #defines.
- Gave video class a reference to the image library, so it can
  look up image surfaces given image indexes.
- Removed SDL.h include from game entity.
- Replaced Uint32s with uint16_ts.
- Load background/UI images in Video class instead of Game class.
main: Move SDL stuff to video class

Put these into screen.h/screen.cpp:

 - SDL initialization
 - screen/background/UI surfaces
 - SDL.h include

Now main() does not depend on SDL.
screen: Store blit location as ints, not SDL rect

Convert them to SDL rect only right before calling SDL_BlitSurface.
Add original author to copyright header in new files

Even though I created these files, a lot of code in there is still
copied over from the original source.  So give credit to Todd.
Move SDL key state reading into system.cpp

This encapsulates SDL-specific code in system.cpp.
system: Move get_ticks function into namespace
game: convert remaining Uint32s to uint32_t

No more SDL types.
screen: move constructor from header to source file

Also include stdio.h explicitly.