Some image and save structure changes

GimbalImages are not necessarily savable. Saving image data and
recreating the image is now the job of whatever owns it.

LightweightImage and LightweightAnimation have been renamed to Sprite
and AnimatedSprite since that is closer to their actual use.

Entities don't store the world bounds, because the bounds don't matter
to them and I don't want to give Entities the potential ability to
change the world bounds. That would not end well. Entities also don't
all have a world variable. Game.world is static now, so there is a
getWorld() method inherited by all Entities. Player still has a world
variable for convenience but that may also get tossed in the future. It
would be annoying if for whatever reason Player got moved to another
world but it didn't know.

The load method now includes the version number as a parameter. It isn't
used for anything yet and maybe in the future I will get rid of it but
it could be used for save file repair or something in the future.

Mob now writes the animation data instead of player. I figure all mobs
are going to be animated.
Lots of small optomization changes

Game has devmode draw onto Game.image so that screenshots now save the
devmode information.

ScreenshotManager renamed to Screenshot, removed from Render, takes a
BufferedImage instead of a pixel array. Game just sends its image
variable over.

GimbalImage renamed to BasicImage in preparation for imminent name
change, frame title also changed.

lots of commenting as always
Improved Keyboard memory usage

each control in keyboard is an array of bytes instead of shorts. AFAIK
it still matches all the keycode values provided by the KeyEvent class,
so it should be fine. I'm not sure if it matters whether the bytes are
signed or not. I hope it doesn't, will have to do proper testing at some
point.