Allocate new HTTPContext for each request

The Java client isn't threadsafe because it reuses HttpContexts between threads. This PR implements the same threadsafe behavior as the 1.0 branch.