Cartography

Added a map class to do abstraction and most of the heavy lifting on
the map itself, I think it works okay but we don't actually have any
proper tests short of walking around.