Remove tautological condition

The modified branch is only reached when the identifier being parsed:

1. Has not been declared in the current scope
2. Is being referenced in the global scope

JSHint seeds its internal table of global variables with all
"predefined" identifiers. Because of this, there can never be a case
where the identifier in question does not exist in the `predefined`
table.

This means conditional expression of the removed `if` statement is
always true, making it unecessary.
Fix bug for vars declared via list comprehensions

This logic already exists for undefined identifiers in the global scope,
but it must be copied to the branch reserved for identifiers in function
scopes.
Consolidate branches

Because these two branches only differ by one line, they should be
consolidated.
Don't raise W083 if a function never touches the outer scope
Merge pull request #1887 from jshint/valueof-better-funcloop

Don't raise W083 if a function never touches the outer scope
Don't emit W098 for exported labels. Fixes gh-1863

Closes #1863
Warn when export declaration used outside of global scope.
Merge branch 'dry-undef' of https://github.com/jugglinmike/jshint into dry-undef

* 'dry-undef' of https://github.com/jugglinmike/jshint:
  Consolidate branches
  Fix bug for vars declared via list comprehensions
  Remove tautological condition