(TK-108) Add support for persistent Java clients

This PR adds support for both synchronous and asynchronous persistent Java clients.
It would be best to separate this out into the discrete classes which need to be imported rather than just using the wildcard.