Replace unicode() for six.text_type

To support Python3, unicode() calls has been replaced by
six.text_type.
Added utils.exception_to_str(): is the proper way to convert
an exception to string, since it manages logic related to
encoding.

Change-Id: I27101390e4f95e5c7690b1b445b7e75b8bcb9a08
Closes-Bug: #1284677
Ensures that task.message is of type unicode

It is likely that a task script might store the message in a format
which is not 'Text', like a json message. To ensure that we save the
task message in the appropriate format, we should typecast it.

partially implements bp async-glance-workers

Change-Id: I4eaebb75357d448d4ea458cd7fe5e4ac96b33ace
Merge "Replace unicode() for six.text_type"