Don't make the socket listener set up discover manually. Also, future additions
(authentication) for WiFi debugging will add extra information to the discovery
packet.
Break up the steps of creating a socket listener and opening it. This allows
more socket options beyond port / path to be added and controlled more
naturally, instead of jamming them into the open method.
In the future with multiple types of socket listeners (bare TCP vs. TLS), each
will need its own logic for allowing connection. This is moved to the listener
level, rather than living at the level of the entire server.
Relocate the debugger client's connect and server's listen functionality in a
separate file. This isolates the security-sensitive socket handling pieces, and
also enables easier extension to make room for TLS sockets.