refactor libomf
refactor libomf
Merge pull request #1767 from WalterBright/scanomf

refactor: split libomf.c into libomf.c and scanomf.c
Fix issue 9744 Poor error message taking address of thread-local variable at compile time

Move the error message from the glue layer, into the interpreter.
Also fix an incorrect entry point into the glue layer.
Fix issue 9745 Allow &staticvar in CTFE

Use SymOffExp for non-dereferenceable pointers to static variables.
It's already supported in the const-folding code, now support it in
CTFE as well. This commit adds full support for pointer arithmetic.
Allow pointer type-painting for pointers to global variables
Fix issue 9774 Error message with __error using == on tuple members
CTFE: allow const casts of struct literals

This was permitted in const-folding, but not in CTFE until now.
Fix comparison of string enums
CTFE: Don't declare tuples wrappers as variables

Only the members of the tuples are variables. The tuple itself
doesn't need storage.
Allow string literals to be cast to mutable

It is legal in constfolding, and it's already impossible
to modify a string literal in CTFE.
Do all interpreting inside CTFE

instead of in the optimizer