Bug 7458: Fix load-time references in <singleton> type checks

* sources/dfmc/llvm-back-end/llvm-emit-type-check.dylan
  (do-emit-instance-cmp on <&singleton>): When doing the instance
   comparison for a <&singleton> type, use the value retrieved from
   the slot rather than referencing an unexpected indirection definition.
Bug 7440: Add methods to determine when a symbol is defined

* sources/lib/llvm/llvm-builder.dylan
  (llvm-builder-global-defined?): New method to determine whether or not
   the given name is defined as a global.
  (llvm-builder-local-defined?): New method to determine whether or not
   the given name is defined as a local name.

* sources/lib/llvm/llvm-library.dylan
  (module llvm-builder): Export llvm-builder-global-defined? and
   llvm-builder-local-defined?.
Bug 7458: Complete implemention of primitive-c-*-at{,-setter}

* sources/dfmc/llvm-back-end/llvm-primitives-ffi.dylan
  (raw-accessor-primitive-definer): Add a flag to determine when read
   values should be sign-extended. Implement definitions for raw
   pointer indirection primitives.
dfmc-debug-back-end: Print FFI support computations

* sources/dfmc/debug-back-end/print-flow-graph.dylan
  (print-computation on <primitive-indirect-call>): New method for
   printing function call-through-function-pointer computation nodes.
  (print-computation on <c-variable-pointer-call>): New method for
   printing C variable address computation nodes.
Bug 7458: Implement code generation for C-function calls

* sources/dfmc/llvm-back-end/llvm-back-end-types.dylan
  (llvm-c-function-type): New function for computing the LLVM type
   for a given <&c-function>.

* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
  (emit-computation on <primitive-call>): Dispatch on primitive type using
   emit-primitive-call.
  (emit-primitive-call on <&primitive>): Method for calling defined
   primitive emitter functions, based on previous emit-computation on
   <primitive-call>.
  (emit-primitive-call on <primitive-call>, <&c-function>): New method
   for calling named C functions.
  (emit-primitive-call on <primitive-indirect-call>, <&c-function>): New method
   for calling C functions through function pointers.
  (emit-primitive-call on <c-variable-pointer-call>): New method for returning
   C variable addresses.
  (llvm-c-function-calling-convention): New method for computing the calling
   convention for a <&c-function>.

* sources/dfmc/llvm-back-end/llvm-back-end-library.dylan
  (dfmc-llvm-back-end): Export llvm-c-function-type and
   llvm-c-function-calling-convention.

* sources/dfmc/llvm-linker/llvm-link-object.dylan
  (emit-extern on <&c-function>): Emit an external declaration for a
   <&c-function> if one hasn't already been provided.
  (emit-extern on <&c-variable>): Emit an external declaration for a
   <&c-variable> if one hasn't already been provided.