Separate UPnP from Game/Server into it's own class

It was a little scattered around. This should clean it up again.