Create entry for every repeated test in index.html

For each repeated test during a test run, an entry is created
in the index.html file (i.e. the overview file for the test run).
In the top level (logdir) index file, only the last test result is
listed.

E.g, given the test spec:
[{merge_tests,false},{dirs,testobj1},{dirs,testobj1}]

In the index file for the test run (under Logdir/ct_run.Node.Date.Time),
both dir tests are listed. In the top level index file (under Logdir),
only the last test is listed (one has to find all results through the
all_runs.html file).
Make it possible to use unique priv_dir names

Introduce the optional feature to have Test Server generate
priv_dir directory names that are unique for each test case
or config function. The name of the option/flag is
'unique_priv_dir' and it can be set to value 'auto' or
'manual'. If auto, Test Server creates each priv_dir
automatically (can be expensive in case of many and/or repeated
cases). If manual, the user needs to create the priv_dir
explicitly by calling ct:make_priv_dir/0.
Add test suite for the unique_priv_dir feature
Change the option name 'unique_priv_dir' to 'create_priv_dir'

The new values for create_priv_dir are:
auto_per_run, auto_per_tc, manual_per_tc
Set correct group leader for end_per_testcase process after tc timeout

Also make sure that warnings about failure or timeout of end_per_testcase
(after a test case timeout) get printed in the test case log file.

OTP-9666
v3_kernel: Clean up handling of guards

Handling of guards become a mess when andalso/orelse in guards
were introduced. Clean it up by using common code for most
constructs, regardless of where they occur, and when needed use
is_in_guard/1 to handle guard constructs differently.
v3_kernel: Dig out the line number only when generating a warning
v3_core: Don't put negative line numbers in annotations

In Core Erlang and later passes, compiler-generated code can be
indicated in two different ways: by negative line numbers and by
a 'compiler_generated' annotation.

Simplify the code and improve coverage by turning negative line
numbers positive and adding a 'compiler_generated' annotation in
the v3_core pass. That means that Core Erlang and latter passes
do not have deal with negative line numbers.
v3_life: Use common code for guards and bodies
Merge remote branch 'origin/peppe/common_test/otp-9964_9975_9595' into maint

* origin/peppe/common_test/otp-9964_9975_9595:
  Have ct_run clean up the code path after each test run
  Fix problems with ct_run's code path manipulation

OTP-9964
OTP-9975
OTP-9595
Merge remote branch 'origin/peppe/common_test/otp-9898' into maint

* origin/peppe/common_test/otp-9898:
  Create link to ct_run in the installation bin dir

OTP-9898
Merge remote branch 'origin/peppe/common_test/otp-9899' into maint

* origin/peppe/common_test/otp-9899:
  Fix broken repeat functionality

OTP-9899
Merge branch 'bjorn/compiler/coverage-and-minor-fixes/OTP-9982' into maint

* bjorn/compiler/coverage-and-minor-fixes/OTP-9982:
  v3_life: Use common code for guards and bodies
  v3_core: Don't put negative line numbers in annotations
  v3_kernel: Dig out the line number only when generating a warning
  v3_kernel: Clean up handling of guards
  v3_kernel: Introduce is_in_guard/1
  v3_kernel: Removed unreached clause for #k_bin_int{} in sub_size_var/1
  v3_kernel: Remove unreached handling of #k_bin_int{} in arg_con/1
  v3_codegen: Eliminate the special case of 'put' without destination
  v3_kernel: Don't attempt to share identical literals
  v3_kernel: Handle sequences in guards
  v3_kernel: Remove clauses that are never executed in arg_val/1
  v3_kernel.hrl: Remove unused record #k_string{}
  v3_kernel.erl: Remove unused define of EXPENSIVE_BINARY_LIMIT
  sys_core_fold: Refactor previous_ctx_to_binary/2 to cover it completely
  sys_core_fold: Fix opt_guard_try/1
  sys_core_fold: Simplify opt_bool_not() to cover it completely
  sys_core_fold: Remove duplicate optimization
Update primary bootstrap
Merge branch 'maint'
Merge branch 'maint'

* maint:
  Update primary bootstrap
  v3_life: Use common code for guards and bodies
  v3_core: Don't put negative line numbers in annotations
  v3_kernel: Dig out the line number only when generating a warning
  v3_kernel: Clean up handling of guards
  v3_kernel: Introduce is_in_guard/1
  v3_kernel: Removed unreached clause for #k_bin_int{} in sub_size_var/1
  v3_kernel: Remove unreached handling of #k_bin_int{} in arg_con/1
  v3_codegen: Eliminate the special case of 'put' without destination
  v3_kernel: Don't attempt to share identical literals
  v3_kernel: Handle sequences in guards
  v3_kernel: Remove clauses that are never executed in arg_val/1
  v3_kernel.hrl: Remove unused record #k_string{}
  v3_kernel.erl: Remove unused define of EXPENSIVE_BINARY_LIMIT
  sys_core_fold: Refactor previous_ctx_to_binary/2 to cover it completely
  sys_core_fold: Fix opt_guard_try/1
  sys_core_fold: Simplify opt_bool_not() to cover it completely
  sys_core_fold: Remove duplicate optimization
Merge branch 'egil/r16/redocument-scheduler_wall_time/OTP-9858'

* egil/r16/redocument-scheduler_wall_time/OTP-9858:
  Update preloaded erlang.beam
  doc: Reintegrate R15B01 scheduler_wall_time doc
Update preloaded modules
erts: Do not rebuild all emulator when preloaded changes
Merge branch 'maint'