Block binding: Handle nested scopes better

#1358 
As far as I can tell, `usedVars_` means "declared": it is updated only by `this.scope_.getAllBindingNames()` and that function joins `var` and `let` bindings.  If we read `this.declaredBindings[name]) return true;` instead of `if (this.usedVars_[name]) return true;`  I think the rest of the function would be clearer.  That is: the rename values never enter into the logic of this function correct?   Only input bindings in various scopes are considered.