A ton of stuff, I probably should've made incremental commits but too
late for that.

I wrote flet, which seems to work pretty well, it allows for recursive
lexically bound functions, it's necessary because lambdas can't be
recursive and defun's are always dynamic

I fixed (finally) the list->array and array->list functions, it was
mostly a bunch of little errors that made stuff difficult

I turned generate_prims.el into an executable script which cleans up my
makefile output and speeds up the emacs program

I fixed the use of ,@ in macros (I think, I've only tested it on one
macro so I'm not 100% sure)

I fixed equal for conses (I had eq set up so that nil != nil)

I also worked on types, I move the type definitons and macros to
prim.c (that is the definitons of the lisp type objects) I also  added a
function to get a lisp type via a keyword. To make this work I had to
add all the type objects to the default obarray (I added them using a
non 'READ'able name (i.e #<typename>)

There might be more that I did, but thats what I can think of now