Fill out the runtime and correct errors until it compiles

I diverged in places from the book, but this follows the same general
plan.

    (call-with-output-file "test.c"
      (lambda (out) (compile/C '(+ 1 2) out)))

then

    gcc scheme.c primitives.c test.c
    ./a.out