Fix coverage.test: "line-execution-counts: one proc hit, one proc unused"

* test-suite/tests/coverage.test ("line-execution-counts"): Fix test for
  even/odd? in letrec.  The test profiles the execution of even?, not
  the letrec, so the last line is in fact not reached.
Fix coverage.test: "procedure-execution-count: never"

* test-suite/tests/coverage.test ("procedure-execution-count"): Adapt
  test to new behavior of procedure-execution-count of an unseen
  procedure: zero, not false.
Fix coverage.test: instrumented-source-files

* test-suite/tests/coverage.test ("instrumented-source-files"): Adapt to
  new expectation that all files loaded on the system will be present in
  the source information.
Fix eval.test: stack involving a primitive

* test-suite/tests/eval.test ("stacks"): Revert expect-fail introduced
  in 27337b6373954e1a975d97d0bf06b5c03d65b64d.
Fix reading and writing arities into DWARF.

* libguile/gsubr.h:
* libguile/gsubr.c (scm_i_primitive_call_ip):
* libguile/programs.c (scm_primitive_call_ip): Adapt to return an
  absolute address.

* module/system/vm/assembler.scm (write-arity-headers): Adapt to write
  byte addresses (relative to the text base).

* module/system/vm/debug.scm (arity-low-pc, arity-high-pc): Return
  absolute addresses, instead of word offsets relative to the text
  base.
  (find-first-arity): Adapt for absolute addresses.

* module/system/vm/program.scm (program-arguments-alist): Adapt for
  arity-low-pc / arity-high-pc absolute addresses.
Fix error message in lambda* eval closures with keywords

* module/ice-9/eval.scm (primitive-eval): For ((lambda* (#:key foo) foo) 'bar),
  give an "invalid keyword" error instead of a "wrong number of
  arguments" error.
Fix arity selection in compute-contification

* module/language/cps/contification.scm (compute-contification): Fail as
  soon as we see an arity with rest, optional, or keyword arguments.
  Fixes ((case-lambda ((a . b) #t) ((a b) #f)) 1 2).
Fix BR_NARGS data type width

* libguile/vm-engine.c (BR_NARGS): Fix width of "expected".  Fixes bug
  with > 65536 arguments in case-lambda clauses.
Add br-if-npos-gt

* libguile/vm-engine.c (br-if-npos-gt): New instruction (sigh!).  For
  case-lambda* dispatching on the number of positional args, as the
  manual describes.  Renumber other opcodes.
Fix case-lambda* dispatching to agree with manual.

* module/system/vm/assembler.scm (kw-prelude): Emit br-if-npos-gt as
  appropriate.
Fix make-vector peval test

* test-suite/tests/peval.test ("partial evaluation"): Fix to expect a
  primcall.
Fix procedure-arguments on RTL programs, and tweak session.test

* module/ice-9/session.scm (procedure-arguments): Add an rtl-program?
  case.

* module/system/vm/debug.scm (arity-arguments-alist): Use the order that
  session.test expects.

* test-suite/tests/session.test ("procedure-arguments"): Adapt tests
  with keywords for the new starting-with-the-procedure numbering of
  locals.
Builtins have procedure properties

* libguile/vm-builtins.h (FOR_EACH_VM_BUILTIN): Add arity information.
  (enum scm_vm_builtins):
* libguile/vm.c (scm_vm_builtin_ref):
  (scm_vm_builtin_name_to_index):
  (scm_vm_builtin_index_to_name): Adapt to macro interface change.
  (scm_init_vm_builtin_properties): New helper, sets procedure
  properties on builtins.
  (scm_bootstrap_vm): Just define the builtins here.  Later in the
  bootstrap we set their properties.
  (scm_sym_apply): Move definition here from expand.c.

* libguile/procprop.c (scm_init_procprop): Call
  scm_init_vm_builtin_properties.
Fix program-minimum-arity to work better with case-lambda.

* module/system/vm/debug.scm (program-minimum-arity): Be more precise
  with case-lambdas.