(TK-108) Add support for persistent Java clients

This PR adds support for both synchronous and asynchronous persistent Java clients.
My guess is this is the same race condition I ran into in the Async tests, and if so we just need to add a `Thread/sleep` here. However, @camlow325 I can remove these tests for now if you prefer.