Replace str with six.text_type

Replace str with six.text_type so that unicode exception messages can be
safely processed, and the change is PY3 compatible.

Closes-bug: #1295443

Change-Id: Ic27ec365b82797df37ae53f38d5d31e70cb65c67
Avoid referencing Message.__str__ in exceptions

Change exception.py to accommodate future enablement of lazy translation.
Specifically, encode unicode messages to byte strings as gettextutil.Message
doesn't support __str__.

Change-Id: I16ab67c32d2050d83c1b51b84b24c0a60675aff7
Merge "Replace str with six.text_type"
Merge "Avoid referencing Message.__str__ in exceptions"