Improve networking support
Significantly improve how players join a game / lobby by moving from completely rescanning every time a player joins to having a single device act as a lobby server. Once the game starts, all communication is still done on a peer-to-peer basis with no device acting as a server. Players can also join by IP address if needed.