More preprocessor fixes/features...

- No point in allowing null, true, false in #if expressions.
- Added support for #error and #warning directives, they take an #if expression (which includes literal strings) and convert it to a string.
- Renamed preprocessorState_none to preprocessorState_default, it's more descriptive.
- initTokenState sets preprocessorState to 0 if options.preprocess is off, which allows me to avoid a check for options.preprocess in some places.
- I am now explicitly turning off the preprocessorState_expandMacros bit when necessary instead of XORing it.
- Checking for unterminated #if in parseTopLevel.