py: #if guard str_make_new when not needed.
stmhal: Reduce coupling between USB driver and readline.

This makes it easier to re-use readline.c and pyexec.c from stmhal in
other ports.
map: Add empty fixed map.

Useful when need to call kw-receiving functions  without any keywords
from C, etc.
builtin: Reimplement __repl_print__() in terms of print().

Before, __repl_print__() used libc printf(), while print() used uPy streams
and own printf() implementation. This led to subtle, but confusing
differences in output when just doing "foo" vs "print(foo)" on interactive
prompt.
pfenv_printf: Properly implement %p format specifier.

Previously, it truncated pointer value to 32 bits on 64-bit systems.