Variable scope work and type-inference data structures sketch.

- VarScopePass resolves all variable references to defining
  let-statements, handling lexical scope appropriately.
- ArgLetPass adds lets for every arg on every toplevel so that
  resolution works for arg references too.
- Sketch of InferredType and type-inference / type-lowering passes. No
  logic implemented yet.