Fix error in "for" loop bytecode generation

The looping variable was assigned to the wrong register, the base
of the for loop. The right register to use is the base + 3.
Fix problems with block's upvalues closure
Move upvalue closing chores into a specific method block_leave
Remove redundant close_uvals call in Chunk bytecode gen