Add low-level API

Adds the foundation of a low-level REST API client. A follow-on review will
have the object-store commands converted into this form.

* api.api.BaseAPI holds the common operations
* api.api.BaseAPIVersion has common version discovery support

Change-Id: I8fba980e3eb2d787344f766507a9d0dae49dcadf
Add end-to-end tests

Duplicate the object-store command test but mock at the requests level
rather than the object-store lib functions

* object-store container list

Change-Id: Ibf25be46156eb1009f1b66f02f2073d3913b846d
Merge branch 'low-level-api-base' into dt-test