Simplified display_offset utility in preparation for implementing
a Camera class
Added camera class and moved display offset logic inside of it. Started using
screen attributes for blitting calls rather than config values
Deprecated draw_image. Added draw() and draw_tile() methods to Screen.
Inverted camera offset so that the offset is added to a given value
Added draw_tile_relative() method to Screen for drawing tiles relative to
the player's location. Uses the camera to determine relative position
Removed some unused variable declarations in graphics.py
Added support for custom surface blitting in Screen. (pass in a surface to
blit on rather than the screen). Moved get_color, flip, and background
blitting into Screen
Removed game_state argument everywhere in graphics functions except for
render() because it isn't needed
Added a context manager that applies the background, calls the containing
block, then flips the display. This is used to easily call the code
surrounding the game specific display functions
Moved config files to a config directory. Disentangled screen settings from
Config and made screen.json settings, with Screen as a LoadableAsset