Fix xml request doesn't work with unicode

Fix bug 1160704

* httplib2 doesn't work with unicode url and params. So encode all unicode
to utf-8 before request.
* Fix xml serializer doesn't work with unicode
* Decode command argument to unicode in main function
* Exception's message maybe include unicode, decode message to unicode
before logging or print.
* Sync the changing of serializer/deserilizer's code with quantum server code
  https://review.openstack.org/#/c/25482/
  https://review.openstack.org/#/c/25046/
  https://review.openstack.org/#/c/21410/
* Enable xml test

Change-Id: Ib140e34d54cc916e2ea172e4bad9e4a77388723a
Add custom TableFormater for keep same empty list behavior as prettytable 0.6

Fix bug 1165962

And upgrade cliff to 1.3.2, because cliff 1.3.1 depends on prettytable<0.7

Change-Id: I6b38a2d77f6b9bf88d6d64f6c02b98b6c21fda3a
Merge "Fix xml request doesn't work with unicode"
Enable automatic validation of many HACKING rules.

 * Add hacking to the tox build - a set of flake8 plugins that
   perform automatic validation of many HACKING.rst rules.
 * This patch configures hacking in the tox build and performs
   the mechanical cleanup required to allow the checks to pass.
 * See https://pypi.python.org/pypi/hacking

Change-Id: Ib41313b5aae991e6ffef2a89dd69e83985bdc36d