Global Variables
compiler-global-get-set

Update c_factor() to use global.get for globals:

Where we emit local.get $name, change to:

    if (c_is_global(name)) {
        emit_str("  global.get $");
    } else {
        emit_str("  local.get $");
    }
    emit_str(name);
    emit_byte('\n');

Update c_stmt() for var declarations and assignment -- use global.set for globals:

    // In the var handler:
    c_expression();
    if (c_is_global(vname)) {
        emit_str("  global.set $");
    } else {
        emit_str("  local.set $");
    }
    emit_str(vname);
    emit_byte('\n');

    // In the assignment handler:
    c_expression();
    if (c_is_global(word)) {
        emit_str("  global.set $");
    } else {
        emit_str("  local.set $");
    }
    emit_str(word);
    emit_byte('\n');

Also update scan_for_locals to skip globals -- they shouldn't appear as (local ...) declarations:

    if (!dup and !c_is_global(vname)) {
        local_names[local_count] = vname;
        local_count += 1;
    }