Reload undefined atoms to use possibly new undefines.

Summary:
As Resolver tries to resolve all undefined atoms, it loads new files. The new
files can contain any kind of atoms, namely, defined, undefined and shared. It's
possible that there's a file that contains the same undefined atom that's being
resolved now in the Resolver's for-loop.

A new undefined atom may have different fallback atom from the previous one.
Currently, such new fallback atom definitions are ignored because although
the new atom is stored to the symbol table, it's not used by Resolver. This
patch fixes that issue by reloading undefined atoms, so that Resolver will
always do based on the most recent state of the symbol table.

There's no performance penalty introduced by this patch -- just in case if you
are wondering. isDefined() uses findByName internally, so the cost is the same.

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2162