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
ssl: Add input sanity check

Avoid puzzling behavior due to options being disregarded if they
are not key value tuples.
Merge branch 'ia/ssl/proplist-input-check/OTP-11760'

* ia/ssl/proplist-input-check/OTP-11760:
  ssl: Add input sanity check
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
Merge branch 'hb/stdlib/qlc_fix/OTP-11758'

* hb/stdlib/qlc_fix/OTP-11758:
  Fix a qlc bug where filters were erroneously optimized away
Merge branch 'bjorn/hipe/fix-race-condition'

* bjorn/hipe/fix-race-condition:
  Delay patching of closures to eliminate a race condition
  hipe: Break apart hipe_bif:make_fe/3 into two BIFs
Merge branch 'nox/compiler/sys_core_fold-erlang-is_record-3'

* nox/compiler/sys_core_fold-erlang-is_record-3:
  Do not mark all calls to erlang:is_record/3 as safe
Merge branch 'nox/compiler/v3_core-mismatched-apply'

* nox/compiler/v3_core-mismatched-apply:
  Do not emit blatantly illformed Core Erlang apply expressions
Merge branch 'nox/maps-expand-update'

* nox/maps-expand-update:
  Fix expansion of map update arguments
Merge branch 'nox/maps-fix-beam_bool-put_map'

* nox/maps-fix-beam_bool-put_map:
  Properly collect labels in put_map instructions in beam_bool
Update primary bootstrap
ssl: Add exception for inet and inet6 to proplist check
match erlang keywords more carefully

Use word boundaries in some regex matching to avoid recognizing words that
begin with keywords as keywords themselves, for example avoid recognizing a
function named catcher as the catch keyword. Add a regression test for this
problem.
Merge branch 'ia/ssl/option-check'

* ia/ssl/option-check:
  ssl: Add exception for inet and inet6 to proplist check
Merge branch 'nox/maps-support-cover/OTP-11764'

* nox/maps-support-cover/OTP-11764:
  Support maps in cover

Conflicts:
	lib/tools/src/cover.erl
Properly lint calls in Core Erlang guards

Not all calls to the erlang module are legal guards in Core Erlang.
Properly sort map pairs in v3_codegen

Literal nil values aren't tagged tuple but the bare atom nil.

The function lists:sort/2 expects the passed function to return true if the first
element is less than or equal to the second, not strictly less than. The original
base clause is changed accordingly.

Reported-by: Ulf Norell
Properly order Kernel code for maps with mixed pairs

The Kernel instructions were not properly ordered when compiling maps with
complex values mixed in assoc and exact pairs.

Reported-by: Ulf Norell