Properly lint shortcircuiting operators

Shortcircuiting operators are not real functions and can't be used as
such with erlang:'andalso'(...) and erlang:'orelse'(...).

Reported-by: Ulf Norell
Do not mark all calls to erlang:is_function/2 as safe

Calls to erlang:is_function/2 where the second is not a literal nonnegative
integer can crash at runtime and thus can't be marked as safe.
Properly detect nonboolean protected expressions in beam_bool

Silly code such as the following could make the compiler crash:

        f() when erlang:float(self()); true -> ok.

Reported-by: Ulf Norell
Handle nil as a wait_timeout argument in beam_utils:live_opt/4

Reported-by: Ulf Norell
Improve message about deprecated built-in types
Introduce compiler option 'nowarn_deprecated_type'

The deprecation of the built-in types dict/0 and so on had as
side-effect that it was impossible to switch to dict:dict/2 and so on
without getting warnings either in the the previous release (R16B) or
the current one (17.0).

By including the attribute

    -compile(nowarn_deprecated_type).

in an Erlang source file warnings about deprecated types can be
avoided in 17.0.

The option can also be given as a compiler flag:

erlc +nowarn_deprecated_type file.erl
stdlib: Improve the doc of the supervisor's via reference

Most of the updates have already been made in
'Fix alternative registry type annotations in supervisor',
a5412706f4185fddbac29216a49affd1e9f11da0.

Thanks to MaximMinin.
Merge branch 'hb/dialyzer/deprecate_types/OTP-10342'

* hb/dialyzer/deprecate_types/OTP-10342:
  Introduce compiler option 'nowarn_deprecated_type'
  Improve message about deprecated built-in types
Merge branch 'nox/compiler/lint-shortcircuit-ops'

* nox/compiler/lint-shortcircuit-ops:
  Properly lint shortcircuiting operators
Merge branch 'nox/compiler/sys_core_fold-erlang-is_function-2'

* nox/compiler/sys_core_fold-erlang-is_function-2:
  Do not mark all calls to erlang:is_function/2 as safe
Merge branch 'nox/compiler/live_opt-wait_timeout-nil'

* nox/compiler/live_opt-wait_timeout-nil:
  Handle nil as a wait_timeout argument in beam_utils:live_opt/4
Merge branch 'nox/compiler/beam_bool-bad-protected'

* nox/compiler/beam_bool-bad-protected:
  Properly detect nonboolean protected expressions in beam_bool
Update primary bootstrap
Merge branch 'hb/stdlib/spec_fixes/OTP-11399'

* hb/stdlib/spec_fixes/OTP-11399:
  stdlib: Improve the doc of the supervisor's via reference