Adds simple tenant usage support for the Nova V3 API

Adds support and tests for the os-simple-tenant-usage
extension for the Nova V3 API. There are no
differences between the V2 and V3 API and this change
adds the client code to enable the usage command. Note
that with nomenclature change from tenant to project
occuring in Nova there will be a difference between
the V2 and V3 API in the future.

Differences between the V2 and V3 API are described here:
https://wiki.openstack.org/wiki/NovaAPIv2tov3

Partially implements blueprint v3-api

Change-Id: Iddf6211c9c87cbb191d9a5d5a65710b343c30e67
Allow empty response in service-list

If a user runs 'nova service-list --binary something-weird', where
something-weird is a binary that is not listed the result is a confusing
IndexError. That is because the result is expected to always have at
least one result.

Part of the reason for that is that the fake client does not make it
easy to simulate an empty response in tests. That is why there is no
regression test associated with this bug-fix. That is also why I am
marking thas as Partial-Bug, as this corrects the symptom, but it does
not prevent it from regressing.

Change-Id: I3e6798d63a662c245196b3bf95bb7e1b0ea9c3a4
Partial-Bug: #1260504
Merge "Allow empty response in service-list"
Merge "Adds simple tenant usage support for the Nova V3 API"