a lot of various work, should've been multiple commits

I did some work on llvm, though not much

I added a few files:
 repl.c and frontend.h are just different bits of frontend.c dived up
 between multiple files

 threads.c is the start of how I'm going to do threads in lisp. I also
 moved revlent code from promise.c into this file. I'm probably going to
 use a thread pool since thread initialization is likely to be slowish
 because of environment initialization

 I added macroexpand.c twith the start of how I'm going to do
 macroexpansion
I still have some work to do on the interpreter, I'm still not totally
sure how to do argument parsing and such for lambdas, but I did add a
file lambda_list.c, which has some code for processing lambda argument
 list, but it still needs some work.

I really want to get the interpreter working soon, even if it's not
super efficient.