Fixed a crash when parsing strings containing non-ascii characters

How to reproduce:

    echo a = \"però\" | ./serpent -s compile

The problem was caused by a negative number being passed to `intToDecimal()` from `strToNumeric()`.
I fixed it by casting to unsigned char.

But then I noticed that the way `intToDecimal()` is implemented and used makes no sense with a signed int argument to begin with: therefore I changed `intToDecimal()` and its counterpart `decimalToInt()` into `unsignedToDecimal()` and `decimalToUnsigned()` in order to clarify what kind of integers we are expecting.