Step5: tail call recursion, yeah!
Step5: tail call recursion, yeah!

Instead of calling eval on some special
forms, use an internal loop in the evaluating
call (thusly circumventing a stack frame
being created in python).

If the recursive call is in tail position
(if it's not in tail position, it
requires the do or let* form.
Both evaluates all but it's last
arguments using recursion) -

the current stack frame is reused
in the function application is reused
and we can now recurse a lot more
than pythons default (1000 on my
machine)

Verification:
* Symlinks does not work for putting
  this directory into the mal-testbed.
  Using a bash wrapper that rsyncs and
  then runs the tests.
* Tests for step5 works.
* Tests for step4 on step5 code
  still works.

jonaslu/thatswhatsup,jonaslu/thatswhatsup,jonaslu/thatswhatsup,jonaslu/thatswhatsup,jonaslu/thatswhatsup