Fix server create for boot-from-volume

* server create required --image even when booting the server from a
  volume.  Change options to require either --image or --volume to
  specify the server boot disk.  Using --volume currently uses device
  'vda' for the block mapping and ignores any other block mappings
  given in --block-device-mapping.
* server create and server show are both affected by bug 1378842 where
  an excepion was thrown when no image ID was present in the returned
  server object, which is the case for a server booted from a volume.
* Fix the remaining assertEqual() order problems in test_server.py

Closes-Bug: 1378842
Closes-Bug: 1383338
Change-Id: I5daebf4e50a765d4920088dfead95b6295af6a4d
Unscoped federated user-specific commands

A federated user can authenticate with the v3unscopedsaml plugin and
list the domains and projects she is allowed to scope to.
This patch introduces the new commands 'federation domain list' and
'federation project list'.
Note that for these commands -and plugin- to be available, the lxml
library must be installed.

Change-Id: I2707b624befcfb0a01b40a094e12fd68a3ee7773
Co-Authored-By: Florent Flament <florent.flament-ext@cloudwatt.com>
Add cliff-tablib to requirements

cliff-tablib gives cliff the ability to format list and show output in
html, json, or yaml (http://cliff-tablib.readthedocs.org/). This patch
adds cliff-tablib to requirements.txt so that it can be installed along
with cliff.

Change-Id: I4daab97642482e6f40cd8209ff5edd9c680092c0
Add --or-show option to user create

The --or-show option is added to create commands for the common case
of needing to ensure an object exists and getting its properties if
it does or creating a new one if it does not exist.

Note that if the object exists, any additional options that would
set values in a newly created object are ignored if the object
exists.

FakeResource needs the __name__ attribute to fall through utils.find_resource.

Prove the concept on v2 user create then propogate once we're happy with it...

Change-Id: I6268566514840c284e6a1d44b409a81d6699ef99
Swap remaining assertEqual arguments

Change-Id: I1abdebb298b93074657a7ba65a7186d814969780
Updated from global requirements

Change-Id: I778a0c00da51cdc52cd67d1b273d52e84d68992b
Merge "Add --or-show option to user create"
Merge "Swap remaining assertEqual arguments"
Begin low-level API for Network v2

api.network.APIv2 starts with network_list() support to flush out
the skeleton of the Network API.

Change-Id: I9a2b90cde84eced1f2ea6a014b769e2bae668211
Merge branch 'examples' into dt-test
Merge branch 'low-level-api-network' into dt-test