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 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
Reformat expected values file for readability
Do not assign names to anonymous functions

Prior to this commit, JSHint attempted to guess at a name for anonymous
functions. Presumably this was an attempt to improve the context of
function location data in the generated report. In addition to
overloading the concept of the "function name" (which has a specific
meaning in JavaScript), the heuristic employed was incomplete and
susceptable to errors.

Remove this functionality and report the name of *all* anonymous
functions as "anonymous".