Rewrite scopes to remove shadowed names.

It works. It really works. I'm kind of flabbergasted.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>
Simplify "plain" Defs.

These are Defs of the form `def newName := oldName`, with no guard. They are
always superfluous and serve only to clutter scopes.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>
Uncomment some debug lines and comment some others.
env: Always generate bindings.

Binding guards aren't quite supported, but at least this should permit things
like assigning Ref.broken() to bindings.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>