Refactor login server code
Refactor login server code

This allows a server to use different login server URIs for handling
different actions. This is mainly intended to be potentially used by
the main server.

sama2/Lumen-Pokemon-Showdown,Disaster-Area/Pokemon-Showdown,EmmaKitty/Pokemon-Showdown,lFernanl/Mudkip-Server,kuroscafe/Paradox,KewlStatics/Shit,comedianchameleon/test,SerperiorBae/Bae-Showdown-2,AvinashSwaminathan/lotus-v3,SilverTactic/Showdown-Boilerplate,Atwar/server-epilogueleague.rhcloud.com,Legit99/Lightning-Storm-Server,Parukia/Pokemon-Showdown,BlazingAura/Showdown-Boilerplate,BuzzyOG/Pokemon-Showdown,DarkSuicune/Pokemon-Showdown,Fusxfaranto/Pokemon-Showdown,QuiteQuiet/Pokemon-Showdown,panpawn/Pokemon-Showdown,zek7rom/SpacialGaze,xCrystal/Pokemon-Showdown,Pikachuun/Pokemon-Showdown-SMCMDM,DesoGit/Tsunami_PS,SilverTactic/Dragotica-Pokemon-Showdown,UniversalMan12/Universe-Server,jd4564/Pokemon-Showdown,abrulochp/Lumen-Pokemon-Showdown,SilverTactic/Pokemon-Showdown,kubetz/Pokemon-Showdown,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,Kevinxzllz/PS-Openshift-Server,DarkSuicune/Pokemon-Showdown,Firestatics/Firestatics46,Pablo000/aaa,Psyientist/Showdown-Boilerplate,megaslowbro1/Pokemon-Showdown-Server-for-megaslowbro1,Irraquated/Pokemon-Showdown,BuzzyOG/Pokemon-Showdown,scotchkorean27/Pokemon-Showdown,Firestatics/Omega-Alpha,Atwar/server-epilogueleague.rhcloud.com,JellalTheMage/Jellals-Server,Yggdrasil-League/Yggdrasil,cadaeic/Pokemon-Showdown,AustinXII/Pokemon-Showdown,MasterFloat/Pokemon-Showdown,arkanox/MistShowdown,SerperiorBae/PokemonShowdown2,BadSteel/Pokemon-Showdown,DesoGit/Tsunami_PS,ehk12/clone,Vacate/Pokemon-Showdown,Pokemon-Devs/Pokemon-Showdown,Wando94/Pokemon-Showdown,Parukia/Pokemon-Showdown,NoahVSGamingYT/Pokemon-Showdown,Git-Worm/City-PS,jumbowhales/Pokemon-Showdown,kotarou3/Krister-Pokemon-Showdown,piiiikachuuu/Pokemon-Showdown,hayleysworld/Showdown-Boilerplate,CorruptedHelix/Pokemon-Showdown,BuzzyOG/Pokemon-Showdown,asdfghjklohhnhn/Pokemon-Showdown,psnsVGC/Wish-Server,ehk12/bigbangtempclone,Sora-League/Sora,Ecuacion/Lumen-Pokemon-Showdown,superman8900/Pokemon-Showdown,panpawn/Gold-Server,SerperiorBae/Pokemon-Showdown,TheManwithskills/DS,Ridukuo/Test,VoltStorm/Server-pokemon-showdown,MeliodasBH/boarhat,ZeroParadox/BlastBurners,sama2/Lumen-Pokemon-Showdown,CreaturePhil/Showdown-Boilerplate,sama2/Universe-Pokemon-Showdown,CharizardtheFireMage/Showdown-Boilerplate,Volcos/SpacialGaze,sirDonovan/Pokemon-Showdown,Tesarand/Pokemon-Showdown,DalleTest/Pokemon-Showdown,Oiawesome/DPPtServ2,ehk12/bigbangtempclone,Alpha-Devs/OmegaRuby-Server,Atwar/ServerClassroom,HoeenCoder/SpacialGaze,Adithya4Uberz/The-Tsunami-League,AvinashSwaminathan/lotus,MayukhKundu/Technogear,ShowdownHelper/Saffron,InvalidDN/Pokemon-Showdown,Checkinator/Pokemon-Showdown,TheManwithskills/DS,johtooo/PS,Wando94/Spite,JellalTheMage/Jellals-Server,EienSeiryuu/Pokemon-Showdown,Raina4uberz/Light-server,TheManwithskills/Dusk--Showdown,BlazingAura/Showdown-Boilerplate,SilverTactic/Showdown-Boilerplate,abrulochp/Dropp-Pokemon-Showdown,Nineage/Origin,MasterFloat/Pokemon-Showdown,MayukhKundu/Flame-Savior,SerperiorBae/Pokemon-Showdown-1,Flareninja/Pokemon-Showdown,CorruptedHelix/Pokemon-Showdown,Wando94/Spite,lFernanl/Zero-Pokemon-Showdown,Irraquated/EOS-Master,LightningStormServer/Lightning-Storm,SerperiorBae/BaeShowdown,urkerab/Pokemon-Showdown,xfix/Pokemon-Showdown,ZestOfLife/FestiveLife,Celecitia/Plux-Pokemon-Showdown,Legit99/Lightning-Storm-Server,Evil-kun/Pokemon-Showdown,PS-Spectral/Spectral,javi501/Lumen-Pokemon-Showdown,DalleTest/Pokemon-Showdown,HoeenKid/Pokemon-Showdown-Johto,BlakJack/Kill-The-Noise,azum4roll/Pokemon-Showdown,gustavo515/test,iFaZe/SilverZ,Pikachuun/Joimmon-Showdown,Flareninja/Pokemon-Showdown-1,Alpha-Devs/Alpha-Server,Adithya4Uberz/The-Tsunami-League,Vacate/Pokemon-Showdown,LegendBorned/PS-Boilerplate,Extradeath/advanced,TogeSR/Lumen-Pokemon-Showdown,gustavo515/batata,piiiikachuuu/Pokemon-Showdown,ankailou/Pokemon-Showdown,TbirdClanWish/Pokemon-Showdown,bai2/Dropp,Celecitia/Plux-Pokemon-Showdown,Alpha-Devs/Alpha-Server,HoeenCoder/SpacialGaze,ShowdownHelper/Saffron,PrimalGallade45/Lumen-Pokemon-Showdown,AWailOfATail/Pokemon-Showdown,LustyAsh/EOS-Master,panpawn/Gold-Server,iFaZe/SliverX,Pikachuun/Joimmon-Showdown,TbirdClanWish/Pokemon-Showdown,danpantry/Pokemon-Showdown,SolarisFox/Pokemon-Showdown,Sora-League/Sora,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,Arcticblast/Pokemon-Showdown,LightningStormServer/Lightning-Storm,gustavo515/final,yashagl/yash-showdown,Atwar/http-server-femalehq.rhcloud.com-80.psim.us-,MayukhKundu/Flame-Savior,Gold-Solox/Pokemon-Showdown,Flareninja/Sora,LegendBorned/PS-Boilerplate,Luobata/Pokemon-Showdown,panpawn/Pokemon-Showdown,Zipzapadam/Server,anubhabsen/Pokemon-Showdown,hayleysworld/serenity,ShowdownHelper/Saffron,Breakfastqueen/advanced,TheManwithskills/Creature-phil-boiler,hayleysworld/serenityserver,MayukhKundu/Mudkip-Server,abulechu/Lumen-Pokemon-Showdown,ehk12/clone,AnaRitaTorres/Pokemon-Showdown,TheManwithskills/Server-2,UniversalMan12/Universe-Server,Kenny-/Pokemon-Showdown,KewlStatics/Pokeindia-Codes,CreaturePhil/Showdown-Boilerplate,AbsolitoSweep/Absol-server,jd4564/Pokemon-Showdown,PrimalGallade45/Dropp-Pokemon-Showdown,Mystifi/Exiled,miahjennatills/Pokemon-Showdown,hayleysworld/harmonia,Breakfastqueen/advanced,kuroscafe/Paradox,Flareninja/Pokemon-Showdown-1,azum4roll/Pokemon-Showdown,arkanox/MistShowdown,Kill-The-Noise/BlakJack-Boilerplate,megaslowbro1/Pokemon-Showdown-Server-for-megaslowbro1,SerperiorBae/BaeShowdown,Flareninja/Lumen-Pokemon-Showdown,TheDiabolicGift/Showdown-Boilerplate,MasterFloat/LQP-Server-Showdown,Volcos/SpacialGaze,Kill-The-Noise/BlakJack-Boilerplate,LustyAsh/EOS-Master,Flareninja/Hispano-Pokemon-Showdown,Extradeath/advanced,KaitoV4X/Showdown,zek7rom/SpacialGaze,Tesarand/Pokemon-Showdown,comedianchameleon/test,Ransei1/Alt,ehk12/coregit,Yggdrasil-League/Yggdrasil,TheManwithskills/serenity,Alpha-Devs/OmegaRuby-Server,Hidden-Mia/Roleplay-PS,DarkSuicune/Kakuja-2.0,TheFenderStory/Pokemon-Showdown,PS-Spectral/Spectral,catanatron/pokemon-rebalance,Wando94/Pokemon-Showdown,gustavo515/test,Firestatics/omega,Zarel/Pokemon-Showdown,AvinashSwaminathan/Pokelegends,Parukia/Pokemon-Showdown,hayleysworld/asdfasdf,miahjennatills/Pokemon-Showdown,svivian/Pokemon-Showdown,AWailOfATail/awoat,Disaster-Area/Pokemon-Showdown,TheManwithskills/Server---Thermal,Articuno-I/Pokemon-Showdown,JennyPRO/Jenny,abrulochp/Lumen-Pokemon-Showdown,JellalTheMage/PS-,hayleysworld/serenityc9,Sora-Server/Sora,FakeSloth/wulu,TheDiabolicGift/Showdown-Boilerplate,megaslowbro1/Pokemon-Showdown,Lauc1an/Perulink-Showdown,Darkshadow6/PokeMoon-Creation,Oiawesome/DPPtServ2,Irraquated/Pokemon-Showdown,TheManwithskills/Server-2,SerperiorBae/Bae-Showdown-2,KewlStatics/Showdown-Template,ankailou/Pokemon-Showdown,sama2/Dropp-Pokemon-Showdown,SerperiorBae/Pokemon-Showdown-1,lFernanl/Mudkip-Server,TogeSR/Lumen-Pokemon-Showdown,anubhabsen/Pokemon-Showdown,Kokonoe-san/Glacia-PS,superman8900/Pokemon-Showdown,SerperiorBae/Bae-Showdown,abulechu/Dropp-Pokemon-Showdown,ZestOfLife/PSserver,SSJGVegito007/Vegito-s-Server,KewlStatics/Pokeindia-Codes,Articuno-I/Pokemon-Showdown,QuiteQuiet/Pokemon-Showdown,Raina4uberz/Light-server,MayukhKundu/Technogear-Final,comedianchameleon/test,kuroscafe/Showdown-Boilerplate,SerperiorBae/Pokemon-Showdown-1,Gold-Solox/Pokemon-Showdown,aakashrajput/Pokemon-Showdown,MasterFloat/LQP-Server-Showdown,SerperiorBae/PokemonShowdown2,Flareninja/Sora,TheDiabolicGift/Lumen-Pokemon-Showdown,Flareninja/Showdown-Boilerplate,SkyeTheFemaleSylveon/Pokemon-Showdown,yashagl/pokemon-showdown,hayleysworld/Showdown-Boilerplate,Nineage/Origin,TheDiabolicGift/Lumen-Pokemon-Showdown,DesoGit/Tsunami_PS,KewlStatics/Alliance,Sora-Server/Sora,DB898/theregalias,AustinXII/Pokemon-Showdown,kupochu/Pokemon-Showdown,ScottehMax/Pokemon-Showdown,ZeroParadox/ugh,CreaturePhil/Pokemon-Showdown,theodelhay/test,yashagl/pokemon,Hopenub/Pokemon-Showdown,johtooo/PS,Pikachuun/Touhoumon-Showdown,hayleysworld/asdfasdf,megaslowbro1/Pokemon-Showdown,cadaeic/Pokemon-Showdown,panpawn/Gold-Server,Ridukuo/Test2,UniversalMan12/Universe-Server,sirDonovan/Pokemon-Showdown,MeliodasBH/boarhat,SkyeTheFemaleSylveon/Mudkip-Server,Pikachuun/Pokemon-Showdown-SMCMDM,RustServer/Pokemon-Showdown,Guernouille/Pokemon-Showdown,Flareninja/Pokemon-Showdown,SerperiorBae/Bae-Showdown,Flareninja/Showdown-Boilerplate,SilverTactic/Dragotica-Pokemon-Showdown,Enigami/Pokemon-Showdown,TheManwithskills/serenity,lAlejandro22/lolipoop,danpantry/Pokemon-Showdown,TheManwithskills/Server-2,svivian/Pokemon-Showdown,xfix/Pokemon-Showdown,Pablo000/aaa,Ridukuo/Test,lFernanl/Lumen-Pokemon-Showdown,xfix/Pokemon-Showdown,KaitoV4X/Showdown,Chespin14/Custom-Platform-Pokemon-Showdown,abulechu/Lumen-Pokemon-Showdown,Pikachuun/Pokemon-Showdown,MayukhKundu/Pokemon-Domain,kuroscafe/Showdown-Boilerplate,QuiteQuiet/Pokemon-Showdown,Sora-League/Sora,Psyientist/Showdown-Boilerplate,hayleysworld/Pokemon-Showdown,svivian/Pokemon-Showdown,gustavo515/final,javi501/Lumen-Pokemon-Showdown,lAlejandro22/lolipoop,Mystifi/Exiled,psnsVGC/Wish-Server,Elveman/RPCShowdownServer,Firestatics/omega,Firestatics/Firestatics46,sama2/Dropp-Pokemon-Showdown,Irraquated/Pokemon-Showdown,kotarou3/Krister-Pokemon-Showdown,InvalidDN/Pokemon-Showdown,SerperiorBae/Pokemon-Showdown,TheManwithskills/COC,yashagl/pokemon,brettjbush/Pokemon-Showdown,Kokonoe-san/Glacia-PS,TheManwithskills/Server,ZeroParadox/ugh,PrimalGallade45/Dropp-Pokemon-Showdown,lFernanl/Pokemon-Showdown,abrulochp/Dropp-Pokemon-Showdown,Pokemon-Devs/Pokemon-Showdown,svivian/Pokemon-Showdown,Flareninja/Sora,abulechu/Dropp-Pokemon-Showdown,BasedGod7/PH,Stroke123/POKEMON,Zipzapadam/Server,Darkshadow6/PokeMoon-Creation,CreaturePhil/Showdown-Boilerplate,jumbowhales/Pokemon-Showdown,SerperiorBae/BaeShowdown,Neosweiss/Pokemon-Showdown,Werfin96/Ultimate,ZestOfLife/FestiveLife,sirDonovan/Pokemon-Showdown,SubZeroo99/Pokemon-Showdown,aakashrajput/Pokemon-Showdown,yashagl/pokemon-showdown,TheManwithskills/Creature-phil-boiler,sama2/Viridian-Pokemon-Showdown,Syurra/Pokemon-Showdown,catanatron/pokemon-rebalance,Irraquated/Showdown-Boilerplate,BadSteel/Omega-Pokemon-Showdown,urkerab/Pokemon-Showdown,FakeSloth/Infinite,LightningStormServer/Lightning-Storm,Irraquated/EOS-Master,lFernanl/Lumen-Pokemon-Showdown,SkyeTheFemaleSylveon/Mudkip-Server,scotchkorean27/Pokemon-Showdown,PauLucario/LQP-Server-Showdown,kubetz/Pokemon-Showdown,SerperiorBae/Bae-Showdown-2,Irraquated/Showdown-Boilerplate,DarkSuicune/Kakuja-2.0,gustavo515/gashoro,SolarisFox/Pokemon-Showdown,Enigami/Pokemon-Showdown,urkerab/Pokemon-Showdown,KewlStatics/Showdown-Template,xfix/Pokemon-Showdown,AbsolitoSweep/Absol-server,Lord-Haji/SpacialGaze,MeliodasBH/Articuno-Land,lFernanl/Zero-Pokemon-Showdown,Nineage/Showdown-Boilerplate,Breakfastqueen/advanced,yashagl/yash-showdown,hayleysworld/Pokemon-Showdown,Tesarand/Pokemon-Showdown,lFernanl/Pokemon-Showdown,SerperiorBae/Pokemon-Showdown,Ecuacion/Pokemon-Showdown,zczd/enculer,MayukhKundu/Technogear-Final,Flareninja/Lumen-Pokemon-Showdown,Legendaryhades/Oblivion,comedianchameleon/servertest1,Kill-The-Noise/BlakJack-Boilerplate,Stroke123/POKEMON,brettjbush/Pokemon-Showdown,Lord-Haji/SpacialGaze,SerperiorBae/Bae-Showdown,Lauc1an/Perulink-Showdown,Firestatics/Omega-Alpha,Lord-Haji/SpacialGaze,hayleysworld/serenity,AWailOfATail/awoat,AustinXII/Pokemon-Showdown,gustavo515/batata,TheManwithskills/COC,PS-Spectral/Spectral,AWailOfATail/Pokemon-Showdown,ZestOfLife/PSserver,Syurra/Pokemon-Showdown,Checkinator/Pokemon-Showdown,Extradeath/psserver,yashagl/pokecommunity,Guernouille/Pokemon-Showdown,sama2/Universe-Pokemon-Showdown,xfix/Pokemon-Showdown,Atwar/http-server-femalehq.rhcloud.com-80.psim.us-,MayukhKundu/Mudkip-Server,TheFenderStory/Showdown-Boilerplate,TheManwithskills/Dusk--Showdown,jumbowhales/Pokemon-Showdown,Zarel/Pokemon-Showdown,Sora-Server/Sora,DesoGit/TsunamiPS,svivian/Pokemon-Showdown,megaslowbro1/Showdown-Server-again,Pikachuun/Pokemon-Showdown,Thiediev/Pokemon-Showdown,Enigami/Pokemon-Showdown,TheManwithskills/Server---Thermal,JellalTheMage/PS-,CharizardtheFireMage/Showdown-Boilerplate,Kevinxzllz/PS-Openshift-Server,HoeenCoder/SpacialGaze,MayukhKundu/Pokemon-Domain,FakeSloth/Infinite,CreaturePhil/Pokemon-Showdown,Darkshadow6/PokeMoon-Creation,gustavo515/gashoro,Git-Worm/City-PS,Ridukuo/Test2,asdfghjklohhnhn/Pokemon-Showdown,MeliodasBH/Articuno-Land,Johto-Serverr/Werfin-Boilerplate,Enigami/Pokemon-Showdown,Ecuacion/Lumen-Pokemon-Showdown,hayleysworld/serenityserver,ehk12/coregit,xCrystal/Pokemon-Showdown,TheFenderStory/Pokemon-Showdown,TheManwithskills/New-boiler-test,NoahVSGamingYT/Pokemon-Showdown,Hidden-Mia/Roleplay-PS,EienSeiryuu/Pokemon-Showdown,Adithya4Uberz/KTN,SilverTactic/Pokemon-Showdown,yashagl/pokecommunity,hayleysworld/serenityc9,HoeenCoder/SpacialGaze,Elveman/RPCShowdownServer,TheManwithskills/Server,zczd/enculer,CrestfallPS/Pokemon-Showdown,theodelhay/test,forbiddennightmare/Pokemon-Showdown-1,MayukhKundu/Technogear,bai2/Dropp,EmmaKitty/Pokemon-Showdown,Bryan-0/Pokemon-Showdown,KewlStatics/Shit,Ecuacion/Pokemon-Showdown,kupochu/Pokemon-Showdown,SSJGVegito007/Vegito-s-Server,DB898/theregalias,sama2/Viridian-Pokemon-Showdown,Atwar/ServerClassroom,k3naan/Pokemon-Showdown,PauLucario/LQP-Server-Showdown,Flareninja/Hispano-Pokemon-Showdown,Bryan-0/Pokemon-Showdown,TheFenderStory/Showdown-Boilerplate,megaslowbro1/Showdown-Server-again,Zarel/Pokemon-Showdown,DesoGit/TsunamiPS,SubZeroo99/Pokemon-Showdown,AvinashSwaminathan/lotus-v2,RustServer/Pokemon-Showdown,Mystifi/Exiled,KewlStatics/Alliance,TheManwithskills/New-boiler-test,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,SkyeTheFemaleSylveon/Pokemon-Showdown,forbiddennightmare/Pokemon-Showdown-1,Neosweiss/Pokemon-Showdown,PrimalGallade45/Lumen-Pokemon-Showdown,JennyPRO/Jenny,hayleysworld/harmonia,comedianchameleon/servertest1,xCrystal/Pokemon-Showdown,Evil-kun/Pokemon-Showdown,Extradeath/psserver,k3naan/Pokemon-Showdown,AWailOfATail/Pokemon-Showdown,aakashrajput/Pokemon-Showdown,ScottehMax/Pokemon-Showdown,Ransei1/Alt,ZeroParadox/BlastBurners,AnaRitaTorres/Pokemon-Showdown