Bug 1078520 - python client

Implement a python client.  Note to reviewers, there were a couple fairly substantial changes to the way the module in the latest commits.  It's probably best to only really look at the most recent code.
Is this to transfer `baseUrl` and `exchangePrefix` ?
It seems that way... I kind of like that... but let's only transfer the properties we need.
This transfers `description` and `title`, do we need to attach them as options?

Also how about calling the attribute `options`, see comment above in contructor for BaseClient