Before this fix, sending CTRL-C would cause the process to abort with an error like "gserver.rb:116:in synchronize': can't be called from trap context (ThreadError)". This fix is as recommended via https://bugs.ruby-lang.org/issues/7648
Previously there was a bug where all connections to NeverRespond would never be disconnected -- even after the client had closed their end. This now uses IO.select() and read_nonblock() to correctly read from the connection to accurately detect a connection close. These tests use a real server and connection to verify the low-level IO handling is done correctly.
Changing this since LOCALHOST is a more intention-revealing name to me, since DEFAULT_HOST was GServer's default. Clients who were using Bane::BehaviorServer::DEFAULT_HOST should use Bane::Services::LOCALHOST instead.