define PRINTF_BODY to integrate printf's

This macro defines a frame of all printf's. It requires that _PUTC_ and
_PUTS_ are defined, which represent "put char" and "put string" callbacks
respectively. Also, it has potential convenience for implementing other
kinds (fprintf, vprintf, etc.) of printf's.
rewrite sprintf to the integrated form
add printf into string-util.c

The count is increased in macros.
simplify "ls" using printf