(TK-108) Add support for persistent Java clients

This PR adds support for both synchronous and asynchronous persistent Java clients.
Although, if we did have the possibility of "conflicting" options, I guess exposing them both on the individual request API would be confusing.  So... ignore my previous comment.  :)