Migrate HTTP server to httpcomponents

The built-in JDK http server does not handle keepalive very well, and
uses a rather opaque model that makes it difficult for us to fine-grain
HTTP behavior, which may be needed during subsequent modifications.