py: Put all global state together in state structures.

This is a second attempt at consolidating global state into one place.  It supersedes #1017.

Improvements upon previous attempt:
- guarded includes now fully implemented by previous patches
- most nlr changes pushed in separate patch already to master (they were nice clean changes)
- state separated into 3 structure: mem (for common memory stuff, like GC), vm (VM specific), ctx (context specific, globals and locals dict)
- state accessed by macros so that it can easily be changed from a global structure to one passed by argument
- bss no longer needed for GC! root pointers are now known because they live in a specific part of the vm state (only implemented properly for unix, stmhal requires some work to separate root pointers from other bss data)