Add support for custom user agent string

To allow Jumpgate and other projects that utilise the Python Client to set their own User Agent string so usage can be tracked