SSH: add support for aes128-ctr and hmac-sha2-256

This cipher and hmac are RECOMMENDED as per RFC4344 and
RFC6668. RFC4344 notes that aes128-ctr is likely to be
promoted to REQUIRED in the near future.

Some distros of Linux and Illumos are already shipping with
aes128-cbc and 3des-cbc disabled by default due to security
concerns around chosen-plaintext attacks and other information
leaks. Without this patch, OTP SSH cannot connect to these
SSH servers in their default configuration.
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.
erts: Don't redefine '_XOPEN_SOURCE'
erts: Fix tentative-definition-incomplete-type
ic: Suppress unused-value warning
fix escript archive symlinked across drives

real_path method used while prim loading archive files was not taking into account
the fact that windows directory symlinks can be across different drives
(eg. c:\tmp\test is a symlink to j:\tmp\test). when performing a path split the drive
precedes the symlink, but that has be rewritten also since it's different. This issue
never arises in Unix since obviously there are no drives
Fix typo in documentation /header_as_is/headers_as_is/
stdlib: Call format_status even if terminate callback crashes

The format_status callback (if exists) should always be invoked when
logging errors.
add maps:only/2
maps:only/2 -> maps:with/2
[ct] Update runtime dependencies towards test_server

Ticket OTP-11971 introduced a runtime dependency towards
test_server-3.7.1, since the interface between test_server and
common_test was changed. Erroneously, the common_test.app file was not
updated according to this. This has now been corrected.
odbc: Suppress signedness warnings for 'char *'

Three different pointer types are used for strings.

SQLCHAR pointer - used against ODBC driver
char pointer - used against erl_interface
byte pointer - used internally

SQLCHAR is 'unsigned char' while erl_interface is 'signed char'

byte pointer should probably not be used at all.
Use compile options when dialyzing beam files

Fetch the compile options from beam files, and use them when creating
core from the abstract code. Previously the options were ignored.

Test by Henrik Nordh
Tweak comments
Add diameter_dbg:sizes/0

To return sizes of named ets tables.
Add (process) info tuple to diameter:service_info/2

To show process_info of interest. This is not yet documented since it
may well change.
Add info item for diameter:service_info/2

To extract only process info from connections info, which can be useful
to reduce the amount of information returned.

Choose 'info' for the item since process_info is more than one word: all
others are one. Don't choose memory since it's too specific: might want
to use it for more.
Fix SSH CLI when using custom "shell" option

Also address compatibility issue with PuTTY
SSH: documentation update for new algos
Rewrite merge of clause variable tables (in case, try, etc)

erl_lint:icrt_export/4 has been rewritten to make the code really
follow the scoping rules of Erlang, and not just in most situations
by accident.

 * The function should not depend on calling unused_vars/3 because that
   function does not return variables which begins with an underscore,
   something that only matters when emitting warnings. This could cause
   a compiler crash if such a variable was reused afterwards.

 * The variable tables from each clause are first merged together,
   lists:merge/1 is safe to use because they are orddicts and thus
   already sorted. This list is then traversed parallelly to the old
   variable table, again taking advantage of their sorted order.

 * The function does not emit warnings itself, there is no need to pass
   around the lint state. In the same vein, vtunsafe/3 has been rewritten
   to do more things by itself, given that all of its calls were similar.
   Finally, compiled-out code has been removed.

 * This reverts the code in 9ce148b1059e4da746a11f1d80a653340216c468,
   which fixed the compiler crash and made erl_lint remember unsafe
   variables, but forget about unused variables in the process.

 * Other places of the code which relied on the old clunky behaviour were
   also updated: unused and unsafe old variables are forgotten when
   merging fun clauses and boolean shortcircuiting operators do not rely
   on icrt_export/3 anymore.