(TK-108) Add support for persistent Java clients

This PR adds support for both synchronous and asynchronous persistent Java clients.
Can we create an interface called just `AsyncHttpClient` or something, so that the public return type of this method is less coupled with the internal class name / implementation details?