FIX: Minor fixes to text and better warnings for gloo

Ready for review/merge.
You cannot decode a unicode string, so this should probably be:

    if sys.version_info[0] == 2 and isinstance(text, str):
        text = text.decode('utf-8')