[test] syn/clash.t before GH #1103

Tests to show problems with illegal escape sequence rules
foo\o => fooo
[core] change Illegal escape sequence policy

Previously: Silently ignore illegal escapes even for a-zA-Z
     and change the string from "foo\o" to "fooo"
Now: Throw "Illegal escape sequence \o in foo\o"
See GH #1103
[core] Add throw_illegal_escape_char, add arg to throw_illegal_escape

Harmonize "Illegal escape sequence \\%c in %Ss" and
"Illegal escape sequence %Ss" error messages.
Also allow \? \'
See GH #1103
[test] syn/clash.t after the GH #1103 fix

die now with "Illegal escape sequence \o in 'foo\o'"
Update ChangeLog
[test] add testcase for double-quoted lex names GH #1095

in perl6 the correctly double-quoted .lex "foo\\o", $P3 name fails to work.
see https://rt.perl.org/Public/Bug/Display.html?id=116643
this might be caused by the switch from globals to lexicals, as this statement
is now enclosed in a block.

in parrot the binary character \0 causes problems in lexnames with roundtrips.
[test] Added LexInfo.declare_lex_preg and more imcc/syn/clash.t tests

For GH #1095

global names do work fine, only lexicals not.
Note I do not know how to reliable get the correct target register index for
declare_lex_preg in pure pir, and how to initialize it.
Setting it crashes the ctx.
[test] add testcase for immc parser bug even with globals

Also updated [GH #1095]
[test] just clarifying comments about the parser
WIP development only: add -t8 flag, unescape in mk_const

see https://github.com/parrot/parrot/issues/1095#issuecomment-58470471
WIP mk_const and str_unescape: skip "
WIP: fixed the tests, but broke parrot

allow and handle now empty strings im imcc, fix
quoted sub names
imcc encodings: fix unicode encoded constants
[imcc] fix .sub name last char
[imcc] fix -d8 dump_instructions, fix double unescaping

string_from_reg may not unescape the const again. fixes t/op/basic_6.pasm
change t/op/basic_9.pasm to catch the new Unknown escape sequence \i in Parrot fl\ies
[imcc] fix U type in sub fixup

Honor mk_const Slp, do not change S to U when called a 2nd time as S
with already stripped quotes.

Change -t8 private trace flag to -d2 proper imcc flag for mk_const tracking
Add more debugging verboseness.
[imcc] the plot thickens. pass the ghash|0 to _mk_const

do not unescape binary strings containing 0
[imcc] 2 more -t8 leftovers over to -d2

Note that currently string_from_reg is the best place to resolve
encoded U strings, as registers store them the same way as in symreg constants.
But we should optimimze that to be more efficient, see GH #1097
[imcc] represent constants with \0 as fixed_8:"\x00"
[imcc] oops
[imcc] fix subid quote stripping

still a battlefield are pmc_const's
which are unquoted, unescaped possibly twice,
and then converted to pmc values.