Properly handle fields too short in io_lib_format

Values for which the precision or field width were too small in io_lib_format
could trigger an infinite loop or crash in term/5.

Reported-by: Richard Carlsson
Properly track column numbers in erl_scan

This is a partial revert of 05c4d31b2c5c5f6ade7d91b55c598fe7fa58e509 in
which a new macro `?STR()` was introduced. This macro shouldn't be used in
scan_number/6 and scan_based_int/6 because the length of the string is
needed when computing column numbers through tok3/8.
stdlib: Correct documentation of dets:insert/2

Thanks to Alexei Sholik for reporting the bug.
Expand shell functions in map expressions

Reported-by: Danil Zagoskin
Merge branch 'maint'

* maint:
  stdlib: Correct documentation of dets:insert/2
documentation: maps:values() returns list of keys

probably a copy&paste error from maps:keys()
Fix man page warning in proc_lib.xml
Fix spec of format function in sys

The argument FormFunc is sys:handle_debug/4war erronously specified as
dbg_fun(), which is a debug function. This has now been corrected by
adding a new type, format_fun().
Fix typo in erl_eval:exprs comments
stdlib: Call format_status even if terminate callback crashes

The format_status callback (if exists) should always be invoked when
logging errors.
Merge branch 'nox/io_lib_format-width-too-small' into maint

* nox/io_lib_format-width-too-small:
  Properly handle fields too short in io_lib_format

OTP-12041
Merge branch 'maint'
Merge branch 'mururu/fix-typo' into maint

* mururu/fix-typo:
  Fix typo in erl_eval:exprs comments
Merge branch 'maint'
add maps:only/2
Fix handling of broken symlinks in filelib

This fixes a bug introduced in f11aabdc9fec593c31e6c4f3fa25c1707e9c35df where
filelib:eval_read_file_info/2 was made to use file:read_link_info/1 to never
follow symlinks. This fixed wildcard/1 but broke every other function using
eval_read_file_info/2.

Reported-by: Louis-Philippe Gauthier
Reported-by: Danil Zagoskin
Add tests of filelib and symlinks

This commit complements 769996c0cd4cb68c157e39de725642f209ed7423 and
adds tests for the following problems introduced by
f11aabdc9fec593c31e6c4f3fa25c1707e9c35df:

Given the symlink 'dirlink' pointing to an existing dir, then
- filelib:is_regular("dirlink") -> false
- filelib:is_dir("dirlink") -> false

Given the symlink 'filelink' pointing to an existing file, then
- filelib:is_regular("filelink") -> false
- filelib:is_file("filelink") -> false
- filelib:last_modified("filelink") and filelib:filesize("filelink")
  return the info of the link and not the file

Given the symlink "broken_symlink" pointing to a non-existing file, then
- filelib:wildcard("broken_symlink",File) -> []
Update runtime dependencies
maps:only/2 -> maps:with/2
Update stdlib appup file

Allow upgrade from OTP 17.1 to newer.