Be really careful with non-ascii data in exceptions/failures

When exception message is Python 2 str with non-ascii symbols,
six.text_type(exc) raises UnicodeError. This change handles this
case gracefully by calling str() instead of string.text_type()
on such exceptions when retrieving messages for exceptions/failures.

Closes-bug: 1276053
Change-Id: I2eb7318a7a5cd5dd687390a65abc0a45bd47de40
Merge "Be really careful with non-ascii data in exceptions/failures"