cover now relies on the compile info to find file sources

Prior to this commit, cover relied on a simple heuristic that
traverses directory from the beam file to find a source file.
The heuristic was maintained with this patch but, if it fails,
it fallbacks to the source value in the module compile info.

In order to illustrate how it works, one of the tests that
could not find its source now passes successfully (showing the
source lookup is more robust).
Ensure cover keeps the proper file source

Whenever a module is compiled via compile:forms/2,
the source is set to current directory unless a source
option is passed to compile. This commit ensures that
cover passes the source information to compile:forms/2
to ensure the source won't be modified after the module
is cover compiled.
Fix a bug in cover when used with no_auto_import

Cover was rewriting guard clauses as non-remote calls.
That said, if a guard contains erlang:is_binary(Binary),
Cover was incorrectly removing the erlang prefix which
lead to errors if is_binary is not auto imported.

This commit keeps the abstract format as it is.
Fix crash in the compiler when compiling element(2, not_a_tuple)
Test setelement(1, not_a_tuple, NewValue)
compiler: Use the literal pool for floating point constants

The BEAM loader will put floating point constants into the
literal pools for the module, but it will not check for duplicates.
We can do much better by having the compiler use the literal
pool for floating point constants.
beam_type: Convert integer to float at compile time

In code such as:

   X / 2

the following code would be output from beam_type for the division:

    {fconv,{x,0},{fr,0}}.
    {fconv,{integer,2},{fr,1}}.
    fclearerror.
    {bif,fdiv,{f,0},[{fr,0},{fr,1}],{fr,0}}.

That is, the integer 2 would be converted to the float 2.0 at
run-time by "{fconv,{integer,2},{fr,1}}". Make sure that we do
the conversion at compile time.

Noticed-by: Richard O'Keefe
kernel docs: Remove references to specs_packages.xml
Update version numbers
Merge branch 'bjorn/compiler/float/OTP-10788'

* bjorn/compiler/float/OTP-10788:
  beam_type: Convert integer to float at compile time
  compiler: Use the literal pool for floating point constants
Merge branch 'bjorn/compiler/crash/OTP-10794'

* bjorn/compiler/crash/OTP-10794:
  Test setelement(1, not_a_tuple, NewValue)
  Fix crash in the compiler when compiling element(2, not_a_tuple)
Merge branch 'bjorn/remove-packages/OTP-10348'

* bjorn/remove-packages/OTP-10348:
  kernel docs: Remove references to specs_packages.xml
Update primary bootstrap
Merge branch 'jv/cover-patches/OTP-10778'

* jv/cover-patches/OTP-10778:
  Fix a bug in cover when used with no_auto_import
  Ensure cover keeps the proper file source
  cover now relies on the compile info to find file sources
Add options to slave module

The behaviour of nodes started with slave:start/1-3 is sometimes
not appropriate. Especially if the master should have a standby to
take over the slaves in case of failure of the original master.
Here is a way to fine tune the slaves by having options for the hard coded behaviours.
Moreover, it is inflexible to give the remote shell program on the command line.
Keep slave:start/5 unchanged.

It is used by the test server for a few tests.
These tests are only possible to run on Erlang OTP Team computers.
If you can not test it, you can not change it.
Merge branch 'dg/win_icon' into master-pu
Merge branch 'sk/odbc64' into master-pu
Merge branch 'sal/ftp' into master-pu
Merge branch 'as/tls-psk-srp-suites' into master-pu