Remove untested option 'raw_files' from file module

This undocumented option makes an application:get_env/2 call every time a raw
file is opened.
compiler: finalize 18.x 'asm' deprecation

'asm' was deprecated in 18315c16, to be removed in 18.x.
Return pointer to value in erts_maps_get()

While at it, implement erts_maps_get_rel() for halfword support.
Support maps in ms_transform
Properly support maps in match_specs
erts: Implement yielding for distributed send of large messages

Use same mechanism as term_to_binary to yield
while encoding large messages for distributed send.
erts: Yield in term_to_binary while copying large binaries

Applies also to distributed send.
erts: Remove unnecessary goto for fun encoding
erts: Yield in term_to_binary when encoding big maps
erts: Optimize some repeated calls to {E,W}STACK_PUSH
erts: Add icount build type for opcode counter

Enables ERTS_OPCODE_COUNTER_SUPPORT.
Passing global var to QuickCheck statemachine

The data_dir used by the tests is given at runtime. This has as a
disadvantage that the generate test has a hardcoded data_dir in it
(ssh_eqc_client_server_dirs below):

[{set,{var,1},
{call,ssh_eqc_client_server,initial_state,
[{state,false,[],[],[],[],"ssh_eqc_client_server_dirs"}]}},
{set,{var,2},
{call,ssh_eqc_client_server,ssh_server,
[{{127,1,1,1},
{call,ssh_eqc_client_server,inet_port,[{127,1,1,1}]}},
"ssh_eqc_client_server_dirs",
[{parallel_login,true}]]}},

Re-running this tests on another machine works, since the path is
relative, but if it were absolute, it would have been hard.

Instead, we may use a symbolic representation of the data_dir and fill
it in each time one runs the property, thus even when one does a check
or recheck.

The key to this is to use a variable in the test and bind the variable
in the place where one runs the commands by using the environment
variable feature of run_commands.

Conflicts:

	lib/ssh/test/property_test/ssh_eqc_client_server.erl
No side effects in function arguments

We want to be able to see tests with eqc_gen:sample, we also want to be
able to re-run tests.

Side effects are no good idea if these goals need to be met. Therefore,
we replace the side effect to ask for a port by making a symbolic call
of this.

Nicer solutions are possible, but at least we can now re-run the test
case, and therefore shrink.
Reduce the total testing time for the properties to 20 seconds

We need to make a global budget for testing on CI server and then
define for each property how much it may use of that time. Probably in
auxiliary file, such that it can be computed from what has changed in
the repo.
Add timeout to a property test (Thanks John & Tobias @ QuviQ)
ssh_eqc_encode_decode.erl compiles
Optimizations
erts: Initialize links when reading file info
Introduce support for eager check I/O scheduling
Merge branch 'rickard/eager-check-io/OTP-12117' into rickard/maint-17/eager-check-io/OTP-12117

* rickard/eager-check-io/OTP-12117:
  Introduce support for eager check I/O scheduling

Conflicts:
	erts/emulator/beam/erl_bif_info.c
	erts/emulator/beam/erl_init.c
	erts/emulator/beam/erl_process.c
	erts/preloaded/ebin/erlang.beam