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
Move object-store commands to low-level API

api.object_store.APIv1 now contains the formerly top-level functions
implementing the object-store REST client. This replaces the old-style
ObjectClientv1 that is no longer necessary.

Change-Id: I7d8fea326b214481e7d6b24119bd41777c6aa968
Steal mhu's auth bits...

...from https://review.openstack.org/#/c/108325/ and see how they work
in a separate module.  Rather well actually.

examples/object_api.py has a work-in-progress example of using this
auth with the low-level API.

Change-Id: Ib63197451af7b26df77de7793bbf323e8539ecd4
compute

flavor, key

Change-Id: Id007535f0598226a8202716232313e37fe6247f9
identity

Try:
* version discovery in common class
* multiple versions of API

Change-Id: Ieb05103ef743c599c2c4c033c5dc260ef86b5992
image

Change-Id: Ie7c24ea2d1bf2b3b1b7fa342eb45fee45894634d
low-level network api

network list

Change-Id: I9a2b90cde84eced1f2ea6a014b769e2bae668211
Merge branch 'low-level-api-compute' into low-level-api-test
Merge branch 'low-level-api-identity' into low-level-api-test
Merge branch 'low-level-api-image' into low-level-api-test
Merge branch 'low-level-api-network' into low-level-api-test