new custom string/unicode conversion methods si(obj) & so(obj)

si() is for strings coming "into" the script, and so() for string going "out",
the first one convertes the incoming string to unicode if not already the case
the later converts to str instead (not used here because linux bash in unicode
calling si() whenever necessary
removed incorrect calls to decode()
fixed int values not converted to string before concat