let printf's output (null) for NULL strings
Revert "add malloc/free into string-util.c"

This reverts commit aae60304451836f88343282db9ebdcb467a70ebd.
move memory-related functions into memory-util.c
add malloc/free into memory-util.c

Their implementation refers to heap_4.c
provide a ctype_table for __ctype_ptr__

Issue: The toolchain implements functions in ctype.h as macros, I.E.
       -ffreestanding does not disable them. It refers my ctype_table
       using index directly, so there may be memory access problems with
       arguments out of [-128, 255].
let printf's support %p

%p outputs (nil) when NULL is given.
add atoi into string-util.c
use new parsing policy of printf's format

Specification of padding & width is considered (not implemented yet). It
can support format such as %02x in the near future.
basic layout handling of pringf's

It handles layout such as "%02X", "%-3s".
implement "mmtest" from hack-malloc

Major changes:
1. Move slot buffer into stack.
2. I think that allocation of smaller than 256 bytes (1%~2%) of heap size
   has very small probability of failure, so only larger allocations must
   be tested. Size of slots[] is dramatically reduced.
3. The number of iterations is limitted, because QEMU does not accept
   Ctrl+C.
4. All allocated memory will be freed for twice execution.

Remark: This command is thought as one of debug functions, so it appears
        in osdebug.c. To allow potential development of "background"
        execution, I let it have a form of a task callback function.