Add /nodes/detail support

This commit adds support for getting a list of node with all
attributes, to both the client and the shell CLI.

Closes-Bug: 1354051
Change-Id: Ic95b865b6e1da5fa42bb8fa7302bb4cd4c98d540
Show port by MAC address

Expose a mean to search for a port by a given MAC address. e.g

$ ironic port-show --address aa:bb:cc:dd:ee:ff

Closes-Bug: #1355155
Change-Id: Ie069bdebfe5143fdcba62a6390729934a4b44f5a
Optimize get_by_instance_uuid

Previously this method was issuing two requests: One filtering the node
by instance_uuid and another to get all the informations about that
node. This patch optimize it by using the /detail flag which will filter
the node by the instance_uuid and return all informations in one request.

Change-Id: Ia22c5012af12b131d5a6601653d704b5a9f39d82
Merge "Show port by MAC address"
Merge "Optimize get_by_instance_uuid"
Fix misspelled class name AmbigiousAuthSystem

Class name AmbigiousAuthSystem in exc.py is misspelled.
To fix the issue, this patch renames AmbigiousAuthSystem to
AmbiguousAuthSystem in exc.py and creates an alias for compatibility.
Also edits the use of the class in client.py accordingly and adds an
additional assertRaises() to
test_client.py.test_get_client_no_url_and_no_token to test both the
correct exception and the alias.

Change-Id: I18309b045d5eb9e81c72b1ed9de350925927db66
Closes-Bug: 1356512