Added work on conses and initial tests for conses, as well as a DEFUN
macro

The DEFUN macro is borrowed from elisp and is just a way to define a
lisp function in C.