binary_findstring_pcharp introduced.

It actually checks if the string should be narrowed.
Used by cpp to avoid code duplication for different shifts.

Removed binary_findstring_shift
cpp minification, step 1

Changed all the macros to functions.

There are still one copy per shift level, but at least this
removed a third or so of the binary size.
parse_esc_seq_pcharp -- handles any shift.
Some fixes to binary_findstring

Mainly avoid type warnings by casting everything to void*.
Moved some functions from WCHAR* to PCHARP.

This saves about 20% binary size in cpp.o (soon down below 100k from
200k), although the large functions (calc*+lower_cpp) have not been
rewritten yet.
Most functions are now shift-independent.

Also made all the constant strings used for comparison 8bit.
calc(*) are now PCHARP functions.

I also fixed five errors that hopefully did not really matter all that
much in calc(*):

o Two instances of data[1] instead of data[pos+1]
o Three instances of data[pos]+1 instead of data[pos+1]

The first error would be triggered if you used '/' in an #if and the
second character of the current cpp work area was '/'.

The second one is probably harmless. Or not, it was in the code for
'&' and '|': basically the detection of && and || there was broken.

However, I think that would be handled by the calling order of the
calc* functions.

Anyway, cpp.o is now less than 100k, about 45% of its original size
(OSX 64-bit).
Better _sprintf.
low*_cpp now uses PCHARP.

Shaves of about 50% of the remaining code size.  Now down to about
50Kb, which seems more reasonable than 200k.

There is still a lot of code duplication, though, like the places that
insert the current file as a #line, the code that handles quoted
newlines etc.

But it is better.

I also removed macros that were only used once and inlined them.
Merge branch 'per/cpp' into 8.0

This introduces the new compact but somewhat slower cpp.
Unified macros in cpp.c and preprocessor.h
Unified macros in cpp.c and preprocessor.h.

Fixed handling of prefixed cpp commands.
Compiler: Fixed thread context conflict.

co_wait_interpreter() doesn't swap out and in the active thread...

Fixes [LysLysKOM 20811527] (and probably [LysLysKOM 20811537] as well).
Some minor touch ups.
DO_IF_DEBUG is defined in global.h
Fixed a double error message.
Nettle: The ivs in CBC, CTR and CCM are now refcounted.

This protects against the iv being freed by a different thread
during processing.
New and improved. Now also compiles.
Moved debug code to nettle.h
Save 5k by not inlining error code.