Don't free Image surfaces when copying/destroying Sprite objects

This fixes some bugs where surfaces were getting freed early due to STL
container operations. This let's free Sprite graphics when (and only when)
we are done with them. This is how we originally did things; it's just
abstracted through RenderDevice now.

Also in this commit, I have moved the loading of the icons Sprite to
createContext(), similar to what was done in the SDL2 port.
Merge pull request #942 from dorkster/sprite_refactor

Don't free Image surfaces when copying/destroying Sprite objects
Move resolution confirm box to a separate game state

These changes allow us to use graphics APIs that need to free all
surfaces/textures before changing resolution.
Merge pull request #944 from dorkster/sdl1

Move resolution confirm box to a separate game state