Make mapgen factory setup more elegant, add mapgen_v6.h

This fixes the quick hack previously introduced by my last commit in a rather clean, elegant manner.  To register a mapgen, one now must provide a MapgenFactory object to EmergeManager::registerMapgen(), so that an object of the derived Mapgen and MapgenParams are used.