Move WrongClause into LispErrors

Add a test scm file to test some constructs
More test cases

I've got broken set! functionality though, I should be able
to set! from inside a function, but I end up discarding changes to
globals made from inside functions
Add more testcases
Add a <void> lisp type for if without-an-else
Add a todo to fix my set! functions