Switch to using modules for everything

This switches us to:
- expanding whole modules, and not top-level expressions
- tracking module identifiers
- looking up module identifiers in something resembling a module environment

For the moment, modules are the only thing we support -- top-level expressions are just gone.

Still to-do:
- [x] `#%unsafe` handling
- [x] making `test_larger` work
- [x] figuring out `test_regression.py`
- [x] figuring out `test_entry_point.py`
- [ ] making this pass RPython
  - [ ] cleaning up mutated_vars handling

When this lands, it will probably break all of the benchmark infrastructure.

Also, I haven't examined performance.

Some things may end up getting fixed on master rather than on this branch.