Make eval return a tuple of (env, result)
Fix broken if

I need tests!
Fix parsing to deal with multiple sexp

Think programs!
Progn!

Prog* and Expr* might be redundant, but that is for some other time.