Worked on fronted, added in a help option and a few other options

the eval option works fine for files but still has issues with strings
the new load option doesn't actually work,
I'm breaking prim.h into prim.c and prim.h so prim.h is just declarations
and macros, but I'm commiting before that because I want to be able to
eaisly revert it if it goes badly.
added some basic tests and refactored prim.c and prim.h as stated in last commit

I changed prim.h to just declarations. funtions and function objects are
now in prim.c which is linked into the final executable.
This cleaned up both files, prim.h is just macro definations and
called to the DEFUN macro to declare stuff. and prim.c has fewer
macro definations and more function definations, allong with
a bunch of calls to a different DEFUN macro to make function objects