wip: convert core_eval function to stack style
wip: convert expression's Eval to support stacked evaluation
wip: convert procedure framework to handle stacked framework
add stack implementation
convert Eval into stack-aware Eval2

Eval2 must not be called recursively (hence the rename)
Once no callers of the old Eval exist, we might rename Eval2 back to
Eval
teach (*SexpPair).Eval to evaluate the function to call

It accomplishes this by returning the expression which will be evaluated
to a procedure. This gets set to the StackFrame.Running procedure in run
in the special step -1
Eval2 is allowed to be called non-recursively
finish up procedure calls, get everything to compile

basic things work, still some hidden failures
fix lambda using wrong indexing for arguments
detect errors in standard library and abort
cond: fix getting stuck on the first condition

turned out we were shadowing args. Oops
rename 'Eval2' -> 'Eval' again

Eval never calles itself recursively, now, but should appear to do the
exact same thing it did before to outsiders.
Merge pull request #22 from ComputerDruid/stack

Stack Implementation