Use Net::HTTP for testing HTTP response

This makes getting the response code simpler than using open-uri; we don't need to catch an exception and return the exception message
NeverRespond now correctly releases connections after close.

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.
Update RubyMine IML
Extract common safe server launcher helper