Add core.get_mapgen_names() to Main Menu API (and use it)

Also rewrite mapgen registration for static initialization