Result objects now keep a reference to the Client that they came from.
Refactor how options and encoding are passed from Client to Result