TraversingVisitor now takes care of maintaining current_block correctly
for functions and loops. This fixes an issue where InterfaceGenerator
was treating function in/out parameters as global interface variables.
Now there's a different bug where it generates global interface variables
for them.