parser: __main__'s locals are globals, regardless of current scope. Logic oops.

One if check was in front of another. Values were assumed to be global if in the
current scope. Now, they're global if they belong to __main__, even if in __main__.

This was done so that accesses to __main__'s values (globals) are ALWAYS done through
o_get_global/o_set_global, instead of just some of the time.
Drop SYM_SCOPE_GLOBAL. Also, add GLOBAL_LOAD_CHECK to emitter.

SYM_SCOPE_GLOBAL is obsolete now that vars have a method depth. The method depth is
more precise, and will allow upvalues later, so it definitely stays. Getting rid of
SYM_SCOPE_GLOBAL also has the nice effect of removing a flag at vm time that's
totally useless and slightly dangerous if copied.

GLOBAL_LOAD_CHECK added to emitter as a macro to check if a particular symbol is a
global one. This was done to reduce potential errors in the future.
vm: COPY_NIL_FLAGS -> COPY_FLAGS_TO_FROM, comment update.

This was done because I intend to add a new flag soon, so this macro will handle more
than just nility.
vm: Better idea: Directly copy flags.

Now that SYM_SCOPE_GLOBAL is no longer being inserted into register flags, the
register flags can be copied using plain old assignments. Right now, the only
flag set on a register is SYM_IS_NIL.
vm: Simplify object assign.