Centralising connection closures helps ensure that everything gets done (.cleanup()) and there's One True Way to find them in the Connections map
It's worth noting that every callsite has a PRUDPConnection*, so maybe a different datastructure would serve us better here?
Every SocketConnection had a map of *PRUDPConnection, which was never actually inserted into anywhere, so the intended function of tracking what OS sockets have which PRUDP streams was not being done.
Remove it as dead code. If the rest of the connection tracking is going to be implemented, this commit can be reverted.
Since the SocketConnection no longer has long-lived state in it, also remove the map on PRUDPServer and just create it as a simple data structure when needed.
The connection close handling of the websocket server had to be rewritten - the old code would never do anything due to the empty maps, so this can't be *worse* than nothing :)