gui: draw tool cursor using fillRect rather than drawLine

this should help with higher-resolution displays where the stroke
behavior can be unpredictable. It works better to use filled
shapes which are more predictable.
animation: maintain animations after repairZone()
refactor: make readTileImage() to read any tile image descriptor type
TileImages: ability to parse Image-Switch construct
TileImages: implement switch tile case 'tile-west'

This lets us display a different image when the tile to the immediate
west is a particular value.
refactor: move build_tool/TileImage to new package
TileImage: make some properties final
TileImage: draw* methods: remove destX and destY parameters

since these can be adjusted using the Graphics2D object
TileImages: make gui classes use same base class as MakeTiles component
refactor: move LoaderContext to graphics package
TileImages: make gui classes more similar to MakeTiles classes
TileImages: replace 'time' parameter with broader-purpose "DrawContext"