Make preprocessing optional; fix signed char bug

- If an external preprocessor is to be used, you can now disable
preprocessing in SmallerC by compiling it with the NO_PREPROCESSOR macro
defined. This will reduce the compiler memory footprint, code and data.
- Fix a signed char bug in the MIPS code generator: keep only the 8
least significant bits when outputting non-ASCII characters of string
literals as 3-digit octal numbers prefixed with \ (e.g. 'á' in code page
437 should be output as '\240' (0xA0) and not as '\37777777640'
(0xFFFFFFA0) when char is signed).