(TK-108) Add support for persistent Java clients

This PR adds support for both synchronous and asynchronous persistent Java clients.
Ok, I'll defer to @cprice404 as to whether he wants this - and the corresponding Java sync one - to be public.