Improved Map

removed SFTiles in favor of s_tileset. s_tileset holds only the unique
tiles that make up the map and m_data just references which tile to use
from s_tileset for each square on the map.  s_tileset is only generated
once, when the first map is created.  In the future if we want to be
able to load multiple tilesets we will have to change it from being
static variable to a member variable.

I also changed the naming convention to better match the rest of the
code.  Such as using "m_."
Further Map/MapGen Improvements

Made map generator a friend class of map
Moved direction enum into mapgenerator(private)
Moved tile enum into map(private)
Removed unnecessary member variables from generator
Changed SetTiles to FillRect and change parameter names to left, top,
right, and bottom
Changed map* generateMap() to void Generate(Map& map);
MapGenerator no longer allocates a new map upon generation.  You must
allocate the map and pass it to it.  That way it is clear who is
responsible for deletion of map.
MapGenerator clears any map passed to it before generating new contents