Moved load_optimized() (previously optimize) to the global scope.
Added another constructor for Surface.
Changed the splash screen's duration.
Used override in Image.
Added the Tileset and Tile classes.
Reversed the way apply() works.
Made the Surface class pure-virtual.
Removed get_* prefixes from observer functions.
Added the Map class.
Added the MapData class.
fixup! Added the Map class.
fixup! Added the MapData class.