Allow arbitrary nesting of vcode contexts
Treat vcode_var_t as opaque in code generator
Lowering and code generation for nested subprograms
Fix test failures with clang