Pass full strings to DTrace probes

Whenever string is passed as an argument to a DTrace probe, its length
should be properly computed. Until now in order to get length of the
input buffer size_of(char *) was used - which evalutes to 4 or 8
(depending on the architecture). To get a proper length,
size_of(DTRACE_CHARBUF_NAME(buffer_name)) should be used.
erts: Fix file driver to handle long paths on windows
erts: Use GetFullPathNameW to construct abs paths from relative ones
erts: Fix long windows paths for compressed files
erts: Fix file_SUITE:make_del_dir for long paths

Windows do not accept long UNC paths for current working directory.
fix file_SUITE:cur_dir_0 for long windows paths
erts: Ignore reduntant slashes in windows paths
erts: Revert file:set_cwd impl for windows

No need to even try as CWD can not bee a long path anyway.
erts: Deprecate halfword emulator
Remove RTL code that handled the (is_)constant guard

The (is_)constant/1 guard is removed from Erlang long ago and thus
there is no need to handle it in RTL.

While editing these files, also performed some minor cleanup.
Shorten default timetrap timeout for ct_master test suite
Protect generated .hrl files from multiple inclusions
zlib: Fix adler32_combine/4 and crc32_combine/4

Since our config.h is included in each source file in the zlib
directory, we must make sure that config.h is also included
every time zlib functions are called to ensure that definitions
of types are consistent.

zlib_drv.c did not include config.h, which caused problems on
a MacOS X Leopard system. What happened was that HAVE_UNISTD_H
was not defined when zlib.h was included. When unistd.h is not
known to exist, the type z_off_t will be set to a long (32 bits
on this platform). But when the zlib source files were compiled,
HAVE_UNISTD_H was defined, unistd.h would be included, and
z_off_t would be set to off_t (64 bits; defined in unistd.h).

As a result of the mismatch, calls to the adler32_combine() and
crc32_combine() would pass only 32 bits in the len2 argument when
64 bits were expected.
eldap: Fix asn.1 decode into binaries
fix sys:get_state/1,2 and sys:replace_state/2,3 when sys suspended

Add two new system callbacks Module:system_get_state/1 and
Module:system_replace_state/2 to allow sys:get_state/1,2 and
sys:replace_state/2,3 to operate correctly even if a process is sys
suspended. Modify gen_server, gen_fsm, and gen_event to support the new
callbacks.

If a callback module does not export these functions, then by default the
Misc value (the same as that passed as the final argument to
sys:handle_system_msg/6, and returned as part of the return value of
sys:get_status/1,2) is treated as the callback module's state.

The previous behaviour of intercepting the system message and passing a
tuple of size 2 as the last argument to sys:handle_system_msg/6 is no
longer supported.

Add tests to verify the correctness of sys:get_state/1,2 and
sys:replace_state/2,3 when processes are sys suspended. Add two tests for
modules that implement special processes, one that exports
system_get_state/1 and system_replace_state/2 and one that doesn't.

Much of the credit for this patch goes to James Fish, who reported the
initial problem and implemented much of the fix.
remove tuple funs from special process documentation

Support for tuple funs was removed in R16B but the documentation for
special processes, sys, and proc_lib in the OTP Design Principles still
showed examples using them, and those examples no longer worked. Fix the
examples to use regular functions instead and fix the documentation to
reflect the changes.
Fix some dialyzer warnings in ct_netconfc
Change release name from "OTP APN 181 01" to "Erlang/OTP"
Update primary bootstrap

   bootstrap/bin/start.boot
   bootstrap/bin/start_clean.boot
erts: Fix heap overflow in maps:remove/2 when key is not found

One key-value pair too many was copied.