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
[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.
SSH: documentation update for new algos
Fix emigrate bug in erts_port_task_schedule()

While current run-queue lock is unlocked in the call to
erts_check_emigration_need() from erts_port_task_schedule() the
port can be migrated to another run-queue by another thread.
The code in erts_port_task_schedule() needs to check if this
has occurred when returning from erts_check_emigration_need(), and
if so respect the migration decision. When this was not done,
the thread calling erts_port_task_schedule() held the wrong
run-queue lock which caused invalid updates of the port task queue.

This bug was automatically fixed by the rewrites in the branch
rickard/r16b/port-optimizations-fixes/OTP-10336 (commit
56cef897ca3ad2377e34a6ea5800a54a28cbeb6e) introduced in erts-5.10
and do not effect erts versions after that.
BER: Test decoding of indefinite lengths

The BER encoder always encodes length as definite lengths. Therefore
indefinite lengths are not well-tested. Add code to the roundtrip
functions in asn1_test_list to automatically rewrite definite
lengths to indefinite length and call the decoder again.
BER decoding: Improve error checking for indefinite length

When an indefinite length was given, the decoder could look beyond
the end of the buffer for the 0,0 that signals the end of the value.
Verify run-queue asserts
SSH: add ssh_to_openssh test for ciphers and macs

This is only an openssh-client-erlang-server test, because
no public API to select ciphers is available for the erlang
client yet.
Merge branch 'rickard/port-emigrate-bug/OTP-12084' into rickard/port-emigrate-bug/maint/OTP-12084

* rickard/port-emigrate-bug/OTP-12084:
  Verify run-queue asserts
  Fix emigrate bug in erts_port_task_schedule()

Conflicts:
	erts/emulator/beam/erl_port_task.c
Ensure "runnable proc" trace messages are not sent out of order
Ensure "runnable port" trace messages are not sent out of order
Fix busy_port_SUITE:io_to_busy test-case
stdlib: Document maps:with/2
stdlib: Test maps:with/2
public_key: Fix spec and documentation for PBES