SearchPathFactory: fix crash if curDir == null
PPLexer: decode the contents of string/char

Until now we only stored the literal and postponed the decoding
of escapes, etc, until the C lexer. However, it is more practical
to do it in PPLexer. It enables better error messages (exact position
instead of character offset). It also allows us to use the values
directly in the preprocessor when we need them,
Types: define INTMAX_T and UINTMAX_T
PPLexer: parse integer constants
Constant: remove the requirement that SHR/SHL right param must be UINT
Constant: implement IntC:and/or/xor/not
Constant: implement static method convert()
Types: implement integerPromotion() and usualArithmeticConversions()
PPDefs[Token]: add assertions for m_code in some extraction methods
Prepr: implement partial #if expression parsing