Fix the line counting in string function

The line counter becomes invalid, when the rules with linewrap are
used. This issue appears, because the parsing FSM does not rollback
the line counter after attempting such rule.
Add unit test for string fun in leex test suite
Fix line counting in token and tokens functions

The line counter becomes invalid, when the rules with linewrap are
used. This issue appears, because the parsing FSM does not rollback
the line counter after attempting such rule.
Unit tests for 'token' and 'tokens' are also added.
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
[ct test] Explicitly unregister event receiver to avoid badarg

... when two tests are run within the same test case.
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
No eager check I/O on OSE
Fix if-clauses that make code to be unreachable

Fix two cases where use of assigment operator instead of comparison
operator causes if-clauses to be always false and code to be unreachable.
BER decoding: Don't allow primitives with indefinite lengths

According to the BER encoding rules, only constructed values may
have indefinite lengths. A primitive value must be encoded with
a definite length.

Reported-by: Simon Cornish
erts: Fix erlang:port_set_data/2 for non immediate data

hsize field was not set leading to VM crash
erts: Fix race between port_set_data, port_get_data and port termination

Always update prt->data with atomic xchg-op.
Check for NULL data to detect racing port terminator.
Use NULL, as THE_NON_VALUE can be a valid pointer on debug VM.
erts: Add test case for port_set_data and port_get_data
Make shell ctrl-u save killed text correctly

Fix edlin to correctly save text killed with ctrl-u. Prior to this fix,
entering text into the Erlang shell and then killing it with ctrl-u
followed by yanking it back with ctrl-y would result in the yanked text
being the reverse of the original killed text.

Add a test for the fix to interactive_shell_SUITE.

(This is the same fix as in PR#416, but that PR was never completed.)