[Mips] Update test case expectations to reflect changes in the
llvm-readobj output format.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@208490 91177308-0d34-0410-b5e6-96231b3b80d8
Indent continuation lines

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@208630 91177308-0d34-0410-b5e6-96231b3b80d8
Add observers to Input Graph

Make it possible to add observers to an Input Graph, so that files
returned from an Input Graph can be examined before they are
passed to Resolver.

To implement some PE/COFF features we need to know all the symbols
that *can* be solved, including ones in archive files that are not
yet to be read.

Currently, Resolver only maintains a set of symbols that are
already read. It has no knowledge on symbols in skipped files in
an archive file.

There are many ways to implement that. I chose to apply the
observer pattern here because it's most non-intrusive. We don't
want want to mess up Resolver with architecture specific features.
Even in PE/COFF, the feature that needs this mechanism is minor.
So I chose not to modify Resolver, but add a hook to Input Graph.
[PECOFF] Find symbols with @number suffix for dllexported symbols

As written in the comment in this patch, symbol names specified with
/export option is resolved in a special way; for /export:foo, linker
finds a foo@<number> symbol if such symbols exists.

On Windows, a function in stdcall calling convention is mangled with
a leading underscore and following "@" and numbers. This name
mangling is kind of automatic, so you can sometimes omit _ and @number
when specifying a symbol. /export option is that case.

Previously, if a file in an archive file foo.lib provides a symbol
_fn@8, and /export:fn is specified, LLD failed to resolve the symbol.
It only tried to find _fn, and failed to find _fn@8. With this patch,
_fn@8 will be searched on the second iteration.