DRYer client code

- Rename ApiRequest to BaseClient
- Make cb_client readonly property
- Remove child constructor (no more terribad 'super' call)