Revert "Remove TailRecVisitor for now"

This reverts commit 3422fbe15feb3059c5012920bcde1a953429df65.
Merge pull request #158 from Kha/tailrec

Make it tail recursive again