fix srp_anon ciphers suites requiring certificates to work.

This problem was not caught by the test suites since all PSK and SRP
suites where always tested with certificates. Split those tests into
test with and without certificates.
Use a set to store ref registers in beam_receive

In some circumstances, as when inlining code, when some optimization
passes are disabled or with hand-written but semantically correct Core
Erlang or BEAM assembly, a fresh reference may be live in more than one
register:

    ...
    {allocate_zero,2,2}.
    ...
    {call_ext,0,{extfunc,erlang,make_ref,0}}. % Ref in [x0]
    ...
    {move,{x,0},{y,0}}. % Ref in [x0,y0]
    {move,{y,1},{x,0}}. % Ref in [y0]
    ...
    {move,{y,0},{x,0}}. % Ref in [x0,y0]
    {move,{x,0},{y,1}}. % Ref in [x0,y0,y1]
  {label,5}.
    {loop_rec,{f,6},{x,0}}. % Ref in [y0,y1]
    ...
    {loop_rec_end,{f,5}}.
  {label,6}.
    {wait,{f,5}}.
    ...

Pass beam_receive expects a single live register for the ref when it
encounters the loop_rec instruction and crashes with the following
reason:

$ erlc t.S
...
crash reason: {{case_clause,
                   {'EXIT',
                       {{case_clause,[{y,1},{y,0}]},
                        [{beam_receive,opt_recv,5,
                             [{file,"beam_receive.erl"},{line,154}]},
                         ...]}}},
               ...}

This commit teaches beam_receive how to use a set of registers instead
of a single one when tracking fresh references, thus avoiding the crash.
Merge branch 'nox/fix-multiple-ref-regs/OTP-11069' into maint

* nox/fix-multiple-ref-regs/OTP-11069:
  Use a set to store ref registers in beam_receive
Update primary bootstrap
Merge branch 'as/fix-srp-psk-anon/OTP-11071' into maint

* as/fix-srp-psk-anon/OTP-11071:
  fix srp_anon ciphers suites requiring certificates to work.
Update version numbers for R17A development
Update primary bootstrap
Update preloaded modules
Move let expressions into sequences

The Core Erlang compiler simplifies let expressions by moving them
into their argument when it is another let or a case expression.
It can then perform other optimizations such as removing the let
expressions altogether, sometimes saving BEAM registers later in
the process.

This commit teaches sys_core_fold how to move let expressions into
sequence arguments.
Update kernel.appup.src for R17
Update stdlib.appup.src for R17
Update sasl version and sasl.appup.src for R17

Also clean up appup_test in sasl_SUITE by removing old versions that
are no longer used.
Update "old vsn" in sasl test to R15 instead of R14 (two back from R17)
Update primary bootstrap
Fix odbc "configure" with "with-odbc" flag checking for odbc in standard locations.
Update version numbers for R17A development
Update primary bootstrap
Update preloaded modules
Move let expressions into sequences

The Core Erlang compiler simplifies let expressions by moving them
into their argument when it is another let or a case expression.
It can then perform other optimizations such as removing the let
expressions altogether, sometimes saving BEAM registers later in
the process.

This commit teaches sys_core_fold how to move let expressions into
sequence arguments.
Update kernel.appup.src for R17