Include scope.depth in temporary variable names.

This elegantly ensures that temporary names will not collide with names in
nested or enclosing scopes, without requiring any actual scanning of those
other scopes.