Add CPQ functions

See https://github.com/exitio/glider/pull/683
I don't get why we are setting `self.client` to a response object. Later we attempt `self.client.query`. This will break?