Decodes input and encodes output

Currently novaclient doesn't handle properly incoming and outgoing
encode / decode process. As a solution for this, this patch implements a
decoding process for all data incoming from the user side and decodes
everything going out of the client, i.e: http requests, prints, etc.

This patch introduces a new module (strutils.py) taken from
oslo-incubator in order to use 2 of the functions present in it:

About safe_(decode|encode):

    Both functions try to encode / decode the incoming text using the
    stdin encoding, fallback to python's default encoding if that
    returns None or to UTF-8 as the last option.

    In both functions only basestring objects are accepted and they both
    raise TypeError if an object of another type is passed.

About the general novaclient changes:

    In order to better support non-ASCII characters, it is a good
    practice to use unicode interanlly and encode everything that has to
    go out. This patch aims to do that and introduces this behaviour in
    the client.

Testing:

    A good test (besides using tox) is to use nova client with and
    without setting any locale (export LANG=).

Fixes bug: 1061156

Change-Id: I20b75e42b0c3dac89f1048faa1127253a64f86c7
Extend test coverage for v1_1/shell.py

Added unit tests for shell code, that wasn't covered before.

Implements: blueprint python-novaclient-unittests
Change-Id: Id9973b1edb39ab76e7a232c262ae073cf44dfc0a
Check if tenant flag is uuid_like for all quota operations

Fix bug 1145706

Change-Id: I9089ea4f968797b248f80bf84027a602e59ccd00
Add wrap option to nova credentials for humans

When using Keystone PKI, a token ID can be over 3200 chars long.
Add optional --wrap option to make 'keystone token-get' human readable
By default wrap=64 (to fit in 80 char terminal).  And can be turned off by
setting wrap=0

Fix bug 1131001

Change-Id: I50be7ebb4323ab1bf07af557403f5136b49080a4
Merge "Extend test coverage for v1_1/shell.py"
Merge "Decodes input and encodes output"
Merge "Add wrap option to nova credentials for humans"
Merge "Check if tenant flag is uuid_like for all quota operations"
Show Tenant_ID for secgroup-list with all-tenant

For the secgroup-list command, append the Tenant_ID
column if the --all-tenants flag is used.

Fixes bug #1118477

Change-Id: If2ff108cb0aec1327ceecc47a8c5ed9a08678e51
Revert API changes in "Unify Manager._update behaviour"

This revert some of commit 63073104665ee4597cf3b7aa8dc2295a8a7db794,
specifically the changes made to the API since those changes were
never merged in Nova.

Resolves bug 1145768.

Change-Id: I8f83c5a33cfed0c3a659f5221b8b2e730ca9463f
Merge "Revert API changes in "Unify Manager._update behaviour""