Bug 7458: Implement closure support for dfmc-llvm-back-end

Implement the <make-closure> and <initialize-closure> computation
emitters in dfmc-llvm-back-end, and support retrieving closure
variable references.

* sources/dfmc/llvm-back-end/llvm-emit-code.dylan
  (emit-code): Bind *current-environment* during IEP code emission as
   the other back-ends do.  Mark closure method objects as read-only
   to enable common subexpression elimination.

* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
  (emit-reference on <temporary>): Check for closure references and
   implement using a call to emit-closure-reference.
  (emit-closure-reference): New function to implement closure references.
  (emit-computation on <make-closure>): Change to implement the various
   cases (stack-allocated closure, top-level method with dynamic signature,
   initialized or uninitialized closure with or without dynamic signature,
   local non-closure method with a dynamic signature).
  (emit-computation on <initialize-closure>): Fill in to implement closure
   initialization.

* sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
  (op--init-signature): New auxiliary emitter method for initializing
   the signature field of a method.
  (op--make-method-with-signature): New auxiliary emitter method for
   allocating a new local non-closure method with a dynamic signature.
  (primitive primitive-make-keyword-method-with-signature,
   primitive primitive-make-method-with-signature): New runtime primitives.
  (op--make-closure): New utility emitter method for allocating a new closure
   method object.
  (primitive primitive-make-keyword-closure,
   primitive primitive-make-closure,
   primitive primitive-make-keyword-closure-signature,
   primitive primitive-make-closure-signature): New runtime primitives.
  (op--init-closure-environment): New auxiliary emitter method for
   initializing closure environment slots based on varargs passed to
   the runtime primitive.
  (primitive primitive-make-keyword-closure-with-environment,
   primitive primitive-make-closure-with-environment,
   primitive-make-keyword-closure-with-environment-signature,
   primitive-make-closure-with-environment-signature): New runtime primitives.
  (primitive primitive-initialize-keyword-closure,
   primitive primitive-initialize-closure): New runtime primitives.
  (op--stack-allocate-closure): New auxiliary emitter method for allocating
   a closure method object on the stack.

* sources/dfmc/llvm-back-end/llvm-primitives-alloc.dylan
  (primitive-copy-r): New C primitive definition.