Fix visiting order of TailRecursiveVisitor

Mayhaps too much rocket science
I'm normally the last one to introduce fancy functional stuff, but we could make the invocations a bit more readable by doing

```scala
  private implicit class Sequence[A](xs: List[A]) {
    def sequenceMap[B](f: A => TailRec[B]): TailRec[List[B]] = tailcall(xs match {
      case Nil => done(Nil)
      case y :: ys => f(y).flatMap(yResult => ys.sequence(f).map(yResult :: _))
    })
  }
```

and then invoking like this: `stmt.statements.sequenceMap(_.accept(this)).map(postVisit(stmt, _))`