Update sasl appup test to work for OTP release 17
Merge branch 'siri/appup_tests_17/OTP-11534'

* siri/appup_tests_17/OTP-11534:
  Update sasl appup test to work for OTP release 17
  Update stdlib appup test to work for OTP release 17
  Update kernel appup test to work for OTP release 17
sasl: Fix testcase which didn't work on windows

Quoting on Windows is strange
Update appups and appup tests for kernel, stdlib and sasl

Appups now only support one major release back, and the tests are
updated accordingly.

Support is also added in tests for giving previous releases in a ct
config file, e.g.

{otp_releases,[{r15,"/path/to/r15/bin/erl"},
	       {r16,"/path/to/r16/bin/erl"},
	       {'17',"/path/to/17/bin/erl"}]}.
Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
[sasl] Use restart type from .rel when restarting apps during upgrade

Earlier the 'restart_application' upgrade instruction always cause the
application to be restarted as permanent. This could cause the system
to end up in an unexpected state after an upgrade. This is now
corrected.
Merge branch 'siri/appup_tests_17/OTP-11534'

* siri/appup_tests_17/OTP-11534:
  Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
  Update appups and appup tests for kernel, stdlib and sasl
Merge branch 'siri/restart_app-type/OTP-11716'

* siri/restart_app-type/OTP-11716:
  [sasl] Use restart type from .rel when restarting apps during upgrade
Use default timetrap (30 min) for kernel, stdlib and sasl app tests

These tests start new nodes, and they frequently timed out on some
slow test hosts.
Introduce runtime_dependencies in .app files

Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.

All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
sasl: Fix crash in systools_make:format_error/1

The crash occurred when systools:make_script/2 raises the
'duplicate_modules' error. Depending on the 'silent' option,
systools_make:format_error/1 is called to either format and display an
error message, or return a tuple containing the error properties.

When displaying a 'duplicate_modules' error message, format_error/1
receives a list of applications providing the same module(s):
  [
    {{Mod,App1,_}, {Mod,App2,_}},
    ...
  ]

However, before this fix, format_error/1 expected the following
structure, leading to a 'function_clause' exception:
  [
    {{Mod,_,App1,_,_}, {Mod,_,App2,_,_}},
    ...
  ]

The crash never occurred with the 'silent' option, because the error and
its properties are returned as is to the caller.
Merge branch 'dumbbell/function_clause-in-systools_make-format_error'

* dumbbell/function_clause-in-systools_make-format_error:
  sasl: Fix crash in systools_make:format_error/1

OTP-11819
Add info about upgrade of core applications

In ref man for appup and in system documentation, design prinsiples,
add a warning related to upgrade when version of erts, kernel, stdlib
or sasl is changed. This will cause an emulator restart where new
version of emulator and core applications will startup together with
old versions of other applications. Care must be taken to avoid
problems due to backwards incompatibility.
Improve printout of command when encoding is utf-8

In release_handler_SUITE, print command with ~ts instead of ~tp in
case it contains unicode characters.
Add debug printouts in release_handler_SUITE:upgrade_gg
Stop nodes after test cases in release_handler_SUITE

Test cases 'release_handler_which_releases' and 'upgrade_supervisor'
did not terminate the nodes they started. This might be the cause of
failing test cases further down the suite. This has been corrected.
Add documentation about upgrade

The example of how to create a first target system, which is located
in the System Principles document, is now extended to also include an
example of code upgrade.

A new chapter is added to System Principles explaining different
issues when upgrade includes new versions applications within
Erlang/OTP.
Merge branch 'siri/master-cuddle-with-tests'

* siri/master-cuddle-with-tests:
  Stop nodes after test cases in release_handler_SUITE
  Add debug printouts in release_handler_SUITE:upgrade_gg
  Improve printout of command when encoding is utf-8
  Add debug printouts in crashdump_viewer_SUITE:load_file
Update release notes