Added a few more opcodes to do constant integer arithmentcs.
Added a few more opcodes

F_NEGATE F_LSH F_AND_INT F_OR_INT F_RSH_INT F_SUBTRACT_INT
Fixed non-int f_negate case
Optimizer: Added some integer overflow paranoia.
Debug: Changed trace flag for check_call_svalue().

This moves tracing of check_call_svalue() from using l_flag (aka
optimizer_debug()) to using trace_level (aka predef::trace()).

The rationale for this is that check_call_svalue() is used by the
runtime (via the variant dispatcher), and not by the compiler.

Tracing of check_call_svalue() is (as before) enabled at level 3.
Builtin: Stricter type for int2char().

Fixes the testsuite test:

  sprintf("%O", typeof(sprintf("%c",  1023))) == "string(1023..1023)"
Added x86-64 version of R_LHS_INT
More simple LSH_OVERFLOW.
Fixed F_LSH_INT.
Do the negative shift check first in <<.

It was somewhat confusing to get bignum errors.
Also generate *_INT for -1, 0, 1 and 0x7ffffffff
Testsuite: Some notes about the sprintf() type tests.

Also changes the expected return type for

  sprintf("%c\n", Stdio)

from string to sprintf_result. This is due to

  (string & sprintf_result) == sprintf_result
Added F_COMPL. Fixed F_AND_INT
Unified some code. Added F_MULTIPLY. Fixed an issue in F_LSH_INT.
Compiler: Added a few more peep-engine rules.
Added F_DIVIDE
Added x86_64 support for F_MOD

The divide instruciton also does mod.
But for negative numbers pike is somewhat different.
So, be rather restrictive.
Corrected name of MODPGroup23
Added a few more x86-64 opcodes

F_XOR / F_XOR_INT
F_DIVIDE_INT / F_MOD_INT
and a partial implementation of F_POP_N_ELEMS.
Compiler [amd64]: Fixed code generator for F_RSH_INT.

The wrong label was used.