Fix #8643: AVLTreeMap strategy Auto discards const

Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
Updated VL-Gothic fonts to version 20120629. Fixes #8662.
Import qrencode-3.3.0 source to be used for QR encoding in KDL.
Add debug_calloc() to the debug_heap.
Make sure that the internal strdup is used.

The kernel strdup will still be used, as the local symbol doesn't
override that. Since we must not use strdup from within the kernel
debugger (as it does malloc from the normal heap), force the use of
the internal strdup that gets redirected to debug_malloc.
Reuse two unused lower ASCII chars for block drawing.

Characters 17, 18 and 19 (device control 1, 2 and 3) become "full block",
"upper filled block" and "lower filled block". Using back- and foreground
color inversion these could be reduced to a single "half block", but
having them available as idividual chars is more convenient.
Add module code that wraps qrencode and does the printing.

* Generates QR codes using the qrencode library functions and prints them
  using terminal escape sequences and the special "block" characters.
* Supplies a static QR buffer that can be used to accumulate output for
  later conversion into QR codes.
* Adds qrencode debugger command that allows to generate QR codes for
  arbitrary strings.
* Adds qrappend, qrflush and qrclear to manipulate the QR buffer.
  qrappend can be the target of a pipe to accumulate output from other
  commands. qrflush causes the QR buffer to be encoded and cleared and
  qrclear only clears the QR buffer.
* Adds qrconfig that allows changing the QR code version, determining
  what size QR codes are to be used.
Add qrencode kernel debugger add-on to the build.

The defines in the Jamfile remap the memory allocation functions to use
debug heap versions of the corresponding functions.
Add qrencode kernel debugger add-on to the image.
Add libqrencode credits to AboutSystem.
Add qrwebpost to generate URLs for easier data collection.

Using the qrwebpost debugger command one can initialize an id for
subsequent QR codes. All QR codes generated following such an
invokation produce URL QR codes that link to an online service that
concatenates all data with the same id and later allows it to be
displayed/downloaded in one piece. This makes collecting larger amounts
of data more convenient. Note though that the URL encoding does waste
space and therefore reduces data density, causing more QR codes to be
generated for the same amount of input data.
Allow aborting the command while QR codes are generated.
Automatic whitespace cleanup and coding style.
Small visual changes to left  scroll view. Fixes #8659.

Fixed width of left scroll view.
Added padding to list items.
Thanks yourpalal for your hints.
Use a shorter URL and query to maximize payload space.
Ensure that the qrencode caches are cleared when aborting.

The caches contain pointers into memory allocated by debug_malloc()
that come from a pool that is destroied once the command returns.
We therefore have to ensure that all such pointers are cleared in all
cases before returning from the command or we will run into errors
when executing the next commands.
Allow more chars to be sent unencoded and encode space as '+'.

While this produces not strictly valid query strings, it reduces the
encoding overhead significantly.
Fix ticket #8650.

- Replace arch_cpu_user_strlcpy() and arch_cpu_user_memset() with x86 assembly
  versions. These correctly handle the fault handler, which had broken again
  on gcc4 for the C versions, causing stack corruption in certain error cases.
  The other architectures will still need to have corresponding asm variants
  added in order for them to not run into the same issue though.