Tiles speedup

Some misc performance work on tiles handling.  The main thing is swapping out the std::map that maps tile ids to tile objects for an std::unordered_map.
A much more minor change is reworking the seasonal tile code to not needlessly call itself every time it finds a match for a seasonal tile.