Multi-threading support for HttpServer

This change allows HttpServer to utilize background threads to offload
almost all work to threads. See HttpServer::setMaxThreads().