erts: Remove some compiler warnings
erts: Refactor code loading to use erts_schedule_thr_prgr_later_op
erts: Allow thr_prgr_later_op to reschedule

and reuse the same ErtsThrPrgrLaterOp
erts: Refactor tracing to use erts_schedule_thr_prgr_later_op
erts: Refactor naming regarding code_write_permission

The concept of code_write_permission is used by tracing as well
and is not specific to code_ix.
erts: Fix faulty lock check assert
Export ets:match_pattern/0 type

Similar to match specification, some of the ets functions uses a match
pattern.  Export the match pattern type to allow for inclusion in the
types and function specifications of other modules.
ssl: It is now possible to call controlling_process on a listen socket,
same as in gen_tcp.

Made error handling of listen sockets as arguments to funtions
expecting a connected socket more inet/gen_tcp like.
ssl: Improve #sslsocket{} API

A #sslsocket{} contains the fsm pid and value that was previously set to
old_ssl or new_ssl to make the transition period smoother. Now that old
ssl is not supported any more we use this field to store the inet socket
reference instead. This enables some API functions to return quicker
as they do not need to communicate with the fsm-process.
Fix Dialyzer warnings

Opaque types need to be exported.
Improve interoperability with SSH clients

This patch fixes a few problems of the SSH shell server that affect the
interoperability with SSH clients in widespread use.

First problem is that, whenever a channel_request message is
received with want_reply=true, the reply ends up being sent to the
servers channel id, not the clients channel id. This causes the client
to terminate the connection. The easiest solution to the problem appears
to be a new function in ssh_connection_manager.erl that translates the
servers channel id before sending the reply (in the same manner as
other functions do it).

Second problem is in ssh_cli.erl. When an SSH client sends a
window_change request between PTY allocation and starting the shell
(which appears to happen with some clients), ssh_cli.erl crashes
because #state.buf is yet 'undefined'. Allocating an empty buffer at PTY
allocation time solves the problem.

Affected SSH clients:
 - all clients based on SSH-2.0-TrileadSSH2Java_213 (problem #1)
 - SSH Term Pro (problem #2)
Merge branch 'ia/ssl/controlling-process-on-listen-socket/OTP-10447'

* ia/ssl/controlling-process-on-listen-socket/OTP-10447:
  ssl: Improve #sslsocket{} API
  ssl: It is now possible to call controlling_process on a listen socket, same as in gen_tcp.
Merge branch 'sverk/code-load-refactor-later-op'

* sverk/code-load-refactor-later-op:
  erts: Fix faulty lock check assert
  erts: Refactor naming regarding code_write_permission
  erts: Refactor tracing to use erts_schedule_thr_prgr_later_op
  erts: Allow thr_prgr_later_op to reschedule
  erts: Refactor code loading to use erts_schedule_thr_prgr_later_op
  erts: Remove some compiler warnings
Merge branch 'hb/stdlib/opaque_warnings/OTP-10436'

* hb/stdlib/opaque_warnings/OTP-10436:
  Fix Dialyzer warnings
Merge branch 'jn/ets-match-pattern-export-type'

* jn/ets-match-pattern-export-type:
  Export ets:match_pattern/0 type

Conflicts:
	lib/stdlib/src/ets.erl

OTP-10472
Merge branch 'sze/improve-interoperability-SSH-clients'

* sze/improve-interoperability-SSH-clients:
  Improve interoperability with SSH clients

OTP-10475