tests: Extend lex number literal dtype tests for %, &, !, # suffixes
Remove LONG type remapping and always use FB_DATATYPE_LONG

The LONG keyword and others like CLNG and DEFLNG are normally using
FB_DATATYPE_LONG, but were remapped to FB_DATATYPE_INTEGER in -lang qb.
(where the INTEGER keyword and others like CINT and DEFINT are remapped
to FB_DATATYPE_SHORT instead of FB_DATATYPE_INTEGER)

Remapping LONG to INTEGER for -lang qb seems pointless since both were
32bit before the 64bit port, and now since INTEGER can become 64bit it's
even wrong, because -lang qb's LONG should be 32bit even on 64bit systems.
(at least that's what I'm thinking)

Perhaps it's a left over from the original plan of making LONG change to
64bit and having INTEGER stay 32bit for a 64bit port.
lex: Strictly use dtypes given through number literal suffixes

This changes the lexer to always give a number literal the dtype suggested
by its suffix, if any.

I.e. a number with ll suffix will always be a LONGINT now, and not a
ULONGINT. Or, a number with the % integer suffix will always be an INTEGER
in -lang fb or SHORT in -lang qb now, and never a LONGINT etc.

Most importantly, the l and ul suffixes now properly produce LONGs instead
of being ignored - this is important for 64bit, where numbers with l suffix
should have the 32bit LONG type, while numbers without suffix default to
the 64bit INTEGER type.