Added the camera to adjust the view.
Added the documentation configuration using doxygen.
Documented the smeargle module.
Documented the scenes module.
Documented the torterra module.
Fixed the log module's documentation to match doxygen's format.
Moved the screen overlap checking function to Camera (previously Surface::is_on_screen()).
Added screen overlapping checks in the Surface-derived classes.
Changed the way Tileset returns Tile objects.
Removed unneeded typedefs.
Modified the way Map stored its tiles, using Tileset's use of share_ptr for Tile objects.
Added the basic and null-pointer input device classes.
Passed input events to the input device.
Added the keyboard input device.
Made the overworld scene set the keyboard input device when active.
Made the frame number static, so it could be accessed from anywhere.
Added alpha channel to surface optimizing.
Used enable_shared_from_this to clone Tile objects in Tileset.
Replaced the markdown file with a dox main page.
Added the common headers directory.
Moved frames-related definitions to a common header.