Allow a persistent connection to be passed to a Client

I don't know if this is helpful to anyone else but I've added the option to specify a connection on a client object so it can make use of a persistent connection.

We then get all the nice error handling of the client with a persistent connection.