Change game loop data output

Instead of being output to both the window title and the console, the
FPS and TPS data is only printed to the window title.
Refactor Game's BufferStrategy

BufferStrategy is now created before render() is ever called, so there's
no need for that clunky if statement there. It should run faster. I
don't plan on ever calling the render() method outside of the game loop,
and only Game can call the method, so it should be fine.
Refactor game

Game was a mess. These edits organize it quite a bit, and make it a lot
more friendly.

- Individual methods like render() that do a lot are more organized.
- KeyInput reads its settings file by itself instead of having Game do
it
- Render owns a ScreenshotManager object that handles screenshots
- in Game.run(), delta starts at 1 so the tick cycle starts immediately
- Removed JFrame setup from Game's constructor
Refactor game

Game doesn't contain the main method, the Thread information, or the
code to set up the JFrame. That is all incased in a Start class that
takes care of the game. A Game object can be used in any sort of
Container without needing to modify the class itself. This is useful in,
say, a world editor where Game might be just one object among several
different containers used to edit it.
Remove Render refs from ScreenshotManager

ScreenshotManager doesn't depend on the existence of an entire Render
object. It only needs a pixel array and a width. It could even be used
by a LightweightImage class or something.
Implement animation

The new LightweightAnimation class is a sibling of LightweightImage.
Both are descendants of GimbalImage. I was originally going to make
LightweightAnimation extend LightweightImage, but this led to a lot of
unused LightweightImage code that just got in the way.

Methods that used to deal with LightweightImages now mostly deal with
GimbalImages.

Also git ignores .gmbl files. I don't want to commit my quicksaves.
Give Player an animation and health

Player has a crappy programmer art type of animation. The animation
flashes when the player gets hurt. There's some loose ends to use to
implement death later. That's pretty much it.
Fix save system to save player data

Entity handles saving of subclassing more elegantly by calling a
saveData() method every time it saves, and a loadData() method every
time it loads. These methods are empty by default. Player uses these to
save/load its data.
Refactor screenshotManager

The names of ScreenshotManager variables are just number and prefix
(instead of screenshotNumber and screenshotPrefix as they were when
Render handled screenshots).
Refactor Entity and GimbalImage, Pre-Alpha.0.05

GimbalImage is an interface instead of an abstract class. This is more
elegant since LightweightImage and LightweightAnimation didn't inherit
anything from it except a method to copy an int[]. Everything using
GimbalImage still works the same.

LightweightImage and LightweightAnimation use BufferedImage's getRGB()
method to copy the pixels over instead of using the native method.
That's really the way it should be done anyway.

LightweightAnimation's setImage() method is restructured to make it only
set the width once, after all the frames have been generated. If there's
an error generating the frames, width won't be able to be set, but I
figure this is a non-issue because if there's an error generating the
frames, it's because of the JRE or the file is saved incorrectly. The
game won't work anyway in that case.

Everything relating to location in Entity is abstract. Mover can handle
it alone, in fact Entity's pre-existing variables and methods were only
getting in the way. Movers had both a double and an int for their
coordinates, and that's ridiculous. Any future Entity that doesn't use
doubles like Mover does can do the same as Mover but with ints.

I also commented a bunch of stuff, hooray!