lots of stuff, got let working, worked a bit on ffi stuff and cleaned up
various little errors/unused code

I'm rather proud of how I've implemented scoping as it makes let binding
really easy. I changed how defun works, now it always defines functions
at the global scope, and thus allows for closures.

I'm still working on the ffi stuff, but I broke cffi.h into cffi.h and
cffi.c I also moved ccall from prim.c to cffi.c

I also did some modification of the parser, specifically parsing nested
lists. previously to have a list of lists you had to do
'( '(list) '(list)....) which is annoying, now it's just
'((list)(list)...), I did this manly to fix let bindings but it's a nice
side effect.

I had to add a new lexical token to deal with let bindings, which I
don't really like. But it was the eaisest way to do things.

Finally I changed a couple things in the Makefile, I renamed anything
libprim into libSciLisp and moved the output filess for the
libraries (i.e libSciLisp_<name>.o) into a seperate subdirectory to
lessen the number of binaries littering the source directory