Always create IO pool for HTTP clients

The previous behavior if JettyIoPool was not specified was to leave the
pool creation up to Jetty. This results in poorly named threads and
non-daemon threads. Instead, we always create one ourselves with properly
named daemon threads.
Use thread group for HTTP client threads
Fix unit tests to work around Jetty SOCKS bug

The Jetty HTTP client needs to be able to read the SOCKS response in a
single read call. We work around it by writing the response all at once.