New level format using Tiled Map Editor

This uses a third-party program, Tiled, which outputs map data in a
couple of different formats, wrapped in XML. Currently using CSV, though
might switch to base64 or some other binary format.

This necessitates a second tileset, for use in building maps. Also
included is Tiled's tileset format which is based on the new tileset
image.

Also, for that reason, the Sentry now has its own tile.

And, switched the order of data being passed to the sprite generator. No
big deal.
Add more levels in Tiled format; a couple fixes

Tiled maps now read an arbitrary number of sprite layers instead of just
one, to allow multiple sprites in the same cell (though rendering layers
are still enforced by sprite type).

Also:
- Changed the way level path is passed to TiledMap class.
- Fixed a bug with sentry movement.
Broke up the main class into two

One class for the window, one for the actual game loop. Hopefully this
is a logical distinction that will let us swap out the game for other
things like menus.