work on items
small fixes

*added queries for window dimensions
*fixed? a bug with key combo matching
*added a clamp function
*fixed initial scroll position to be over player
*fixed zooming to be centered over the tile that was previously centered
*fixed opening / closing doors under the player
a readme
added configuration file

*fixed a bug in level gen ( Level generation assertion failure #2 )
*added config file
*added a parameter to allow sparse enum<-> string maps
*added get for renderer scale and translation
*changed font rendering to be independant of renderer scale and
translation
*added common json parsing functions (incomplete)
*eliminated some dead code
test for twitter
a lot of refacoring to accomodate input modes

still very much in flux, but compiles and runs.

*fixed a copy&paste error in set_translation
*made render const for tile_sheet
*added level
*added view
*added input modes
*temporarily changed player placement code and walkability to facilitate
testing while refactoring
mainly cleanup and refactoring

*added a zoom_reset command to center the view on the player and reset
the zoom factor to 1.0
*properly forwarded window dimensions down to the implementation
*added a json helper "has_field" to check for the presence of a field
*cleaned up the older json parsers
*refactored the level generation code a little
added more stair functionality

*added up/down commands
*cleaned up the msvc project file a bit
*added data for stairs
*stairs now display as up or down
*added a "last message" instead of the test text
a little cleanup

*fixed a few warnings
*factored out a few constants
some fixes to compile under gcc
code cleanup

*fixed some warnings under gcc (-Wall -Wextra -Wpedantic)
*moved macros into a seperate file
*removed macros from enum_map.hpp
*cleaned up enum_map.cpp
*changed old assert / precondition to the new version
*combined and refactored some code in math.hpp
*added some tests for math
basic unicode font rendering (quick and dirty)

*added configurable messages (multi-language)
*added .natvis for visual studio
*numerous changes to font rendering
* added an LRU cache for glyhs in addition to a static cache

*code needs to be cleaned up, commented, and have unit tests added
font rendering code mostly cleaned up
made stairs usable

*(config) allow random seeds to be created from strings
*(message) added 3 new messages for stairs
*refactored the door code
levels are persistant

*made levels persistant
*added on_scope_exit
*added make_iterable
*added "mobs" that currently do nothing
*cleaned up some algorithm calls to use the container version
*changed a few lambdas to use c++14 auto systax
added the beginning of timers

*added timer to track timed callback events
*made the last message fade away after some time
*fixed a small bug with the temp mob placement
*added the beginning of turn tracking
allow mobs to wander randomly

*some work on tinting for textures
*some work to allow time (turns) to advance
*fixed level generation to respect width / height params
added a spatial map and the basics of items

*added a "get" command and key mapping
*added new messages for getting
*added container based equal_range
*fixed a bug affecting spaces in font rendering
*added two convenience functions to random
*added the beginnings of a spatial map
*added a wait command
some cleanup

*removed some hard coded numbers from fonts
*added more font metrics
*made entities collide with each other
*made the player kill enties in one hit
*various tiny fixes for gcc warnings
*changes to spatial_map to make GCC happy (MSVC too lax?)
Work toward functioning items and inventory

*fixed a bug in font rendering (should have been signed)
*fixed a bug in font rendering (texture offsets were wrong)
*added rect drawing functions (text background etc)
*added accessor functions to get the actual extent of text layouts
*moved more json field names to a central location
*added a json utility class to consolidate locale file parsing
*made item generation draw from the .def files instead of the old
temporary list
*properly erase old inspect messages when the view changes
*added a parser for json item def files