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:
- [ ] `#%unsafe` handling
- [ ] making `test_larger` work
- [ ] figuring out `test_regression.py`
- [ ] figuring out `test_entry_point.py`
- [ ] making this pass RPython

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.