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.
[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.
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.
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
public_key: Fix spec and documentation for PBES
public_key: Fix spec and documentation for pkix_crls_validate
SSH: only enable ciphers/MACs when they are available in crypto

Also adjusts tests to only expect a positive outcome when
crypto supports the relevant base ciphers/MACs.
Avoid timing issue in schema transaction when node is stopping

By doing an abort, the create_table can be restarted
if a node go down during the transaction.

{badarg,
   [{erlang,link,[undefined],[]},
    {mnesia_controller,
        wait_for_schema_commit_lock,0,
	       [{file,"mnesia_controller.erl"},
         {line,303}]},
    {mnesia_schema,prepare_commit,3,
        [{file,"mnesia_schema.erl"},
         {line,1838}]},
    {mnesia_tm,commit_participant,6,
        [{file,"mnesia_tm.erl"},
         {line,1669}]}]}}},
Merge branch 'dgud/mnesia/create-table-race/OTP-12124' into maint-17

* dgud/mnesia/create-table-race/OTP-12124:
  Avoid timing issue in schema transaction when node is stopping
Prepare release
Updated OTP version
Merge branch 'ia/public_key/dialyzer' into maint

* ia/public_key/dialyzer:
  public_key: Fix spec and documentation for pkix_crls_validate
  public_key: Fix spec and documentation for PBES
Merge branch 'rickard/port-emigrate-bug/maint/OTP-12084' into maint

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