Remove ppParse() function result (unused)
Same for ppSkip(), ppCondIf(), ppCondElse()
hConstAccumADDSUB(): Don't ignore sign for 1st constant
Add extensive auto-generated integer arithmetic test cases
hOptConstAccum1/2(): Walk bottom-up to ensure to catch everything; clean up
tests: Merge macro/ tests into pp/
pp: Disallow identifiers/keywords as-is in PP expressions

in favour of true string literals, and switching to cExpression() (in the
next commit) which then will allow using "const foo = 123" constants and
other kinds of constant evaluation.

This wouldn't be possible while identifiers and keywords are silently
converted to string literals in PP expressions, so it seems best to remove
that feature. It's still possible to use a <#define stringify(s) #s> macro
to do it manually if needed.
(PP expressions supporting the same keywords that normal expressions do
seems to me like it's more useful than the special identifiers/keywords
as string literal support)
pp: Use cExpression() to parse PP expressions

This allows all usual FB expressions also in the context of #if, i.e. #if
can use any constant expression instead of being restricted to a subset.
For example, this adds support for AndAlso, OrElse, Iif(), Len(),
Ubound/Lbound(), constants, etc. (basically all operations that the old
PP expression parser didn't support, but cExpression() does, and also any
expressions that are evaluated at compile-time)

Instead of calculating the #if expression value manually, it now relies
on the AST's constant folding like everything else. This removes lots of
duplicate code, thus eliminating potential sources of bugs, and making the
64bit port easier.

In fact, this change fixes some quirks with #if's expression evaluation.

For example, this was evaluated to "false" before this patch, even though
it should be "true":

	#if (1/2) > .49
		#print "(1/2) > .49  ->  true"
	#else
		#print "(1/2) > .49  ->  false"
	#endif

same for this kind of expression involving unsigned arguments:

	#if &hFFFFFFFFu > 0u
		#print "&hFFFFFFFFu > 0u  ->  true"
	#else
		#print "&hFFFFFFFFu > 0u  ->  false"
	#endif

since now the AST handles the calculations, at least the behaviour will
be consistent with the rest of FB now.
pp: Remove the now unused PP expression parser
Merge branch 'pp'
ast-optimize: Remove ASTVALUE and use CONST nodes instead

Instead of doing all the calculations manually, we should be able to
re-use CONST nodes and the constant evaluation built into astNewBOP() etc.
This removes a lot of code, which is already nice, and even more though
for the 64bit port because less 32/64bit-sensitive code must be adjusted.
astNewCONV(): Add AST_CONVOPT_DONTCHKPTR to allow disabling the ptr checks
Merge branch 'master' into 64bit

Conflicts:
	src/compiler/ast-node-mem.bas
ast: Change FBVALUE & co to store all integer constants as 64bit