64bit: Fix new[]'s element count
parser: Add conversion overflow checks for CONST CASE expressions
parser: Remove cIntConstExprValue(), use cConstIntExpr() instead
constant folding: Use typeIsSigned() instead of checking manually
astNewASSIGN(): Update all helper vars when remapping [w]char types
astNewASSIGN(): Pass full type to astNewCONV(), not just typeGet()'s result

we probably don't want to call astNewCONV() with FB_DATATYPE_POINTER,
but rather the real pointer type...
Add changelog entry and more tests for b0482ace
Fix #577: Disallow assignments between string and *byteptr expressions

(By removing the code that allowed it since a09fb344, where z/wstrings
didn't exist yet. Note: that old commit also allowed *byteptr expressions
for string args, but that apparently has already been removed since then,
since it's no longer working now.)
ast: Turn astCONSTIsTrue() into astConstIsZero(), re-use in ptr checks
astNewASSIGN(): Ensure to pass subtype to astNewCONV() too
ast: Let astNewCONV() do all CONST overflow checking

This simplifies quite some code, because several astCheckConst() calls
and even the whole hTruncateInt() can be removed (assuming astCheckConst()
will already do the same checks).

As can be seen with tests/warnings/, many double-warnings are eliminated
by this, but unfortunately due to the change in ast-node-arg.bas the
overflow warning for arguments will no longer be shown via hParamWarning()
currently.
err: Add stack for parameter error reporting

(fixes the paramer reporting regression from the previous commit)

astNewARG() will tell the err.bas module about the current "context",
i.e. the current parameter, allowing any error messages emitted while
checking the arg to automatically use the "at parameter N of PROC()" form.
cStrCHR(): Use astConstIsZero() instead of astGetValueAsInt() too
Add CONST overflow check for dimension arg of compile-time l/ubound

Also, the error message will now show "at parameter 2 (dimension) of
LBOUND/UBOUND" instead of just "at parameter 2". For this, the
LBOUND/UBOUND token is now passed to the err module through
errPushParamLocation() while the proc symbol is NULL.

This could also be used to improve the error messages for other quirk
constructs (that are handled by quirk parsers instead of being "real"
procedures).
Add test case for 6ca73a45
ast: Replace astGetValueAsInt() with new function based on astNewCONV()

The new astConstFlushToInt() uses...
- astNewCONV() to do the conversion to integer and possibly show an
  overflow warning
- and also includes the astDelNode() (hence the name "flush") that was
  always used after astGetValueAsInt()

This is a step towards removing some redundant FBVALUE-related code,
specifically the SELECT blocks such as the one from astGetValueAsInt().
astNewCONV() can just be re-used, it's the nicer (more correct) way to
convert a CONST node, and makes things easier for the 64bit port.
ast: Replace astGetValueAsULongInt() with astGetValueAsLongInt()
ast: Remove now unused parameter/result of astCheckConst()
ast: Use astNewUOP() to negate CONST node instead of doing it manually
ast: Turn astGetValueAsStr() into astConstFlushToStr() (see also 7c62ad2d)