implement support for shorts, ushorts, and uchars
random cleanup. change way we build string in codegen to make it easier to wrap the result with parens