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
erts: Do not rebuild all emulator when preloaded changes
Ensure that -on_load functions are not reported as unused
Merge branch 'sa/dialyzer-fixes' into maint
* sa/dialyzer-fixes:
      Ensure that -on_load functions are not reported as unused
      Unknown types are being reported by dialyzer's GUIs
      Fix bug in remote type solving
      Review by Kostis Sagonas and fixes
      Simplify external vs bad calls check
      Remove callgraph from the state used during solving
      Refactorings in dialyzer_typesig
      Avoid unnecessary passing of huge terms in some closures
      Further simplifications
      Remove redundant code
      Simplify dialyzer_succ_typings code
      Cleanups in dialyzer_callgraph and dialyzer_dataflow
      Zero-arity unused functions Dialyzer patch
      Cleanup debug messages in dialyzer_dataflow
      Refactorings in dialyzer_analysis_callgraph
      Allow t_opaque_structure to handle multiple opaque types
      Support alternative spelling of behaviour
      Refactor function selection by Dialyzer's codeserver
      Prettify spec
      Small fixes for Dialyzer's testsuites generation
Merge branch 'rickard/barriers/OTP-9922' into maint

* rickard/barriers/OTP-9922:
  Remove newly introduced excessive barrier in erts_thr_progress_later()
  Fix implementation with ddrb barriers