TODO: figure out a way to correctly delete Server objects, without any other places of the code accessing stored pointers of a deleted object. Not deleting the Server objects after removing them from the ServerList here will leak memory, but avoid a application crash as well. Pointers to the server objects are stored in various places for fast access.