[InputGraph] Expand InputGraph nodes.

Flavors may like to expand InputGraph nodes, when a filenode after parsing
results in more elements. One such example is while parsing GNU linker scripts.
The linker scripts after parsing would result in a lot of filenodes and probably
controlnodes too.

Adds unittests to verify functionality.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@195515 91177308-0d34-0410-b5e6-96231b3b80d8
[InputGraph] Add capability to process Hidden nodes.

Hidden nodes could be a result of expansion, where a flavor might decide to keep
the node that we want to expand but discard it from being processed by the
resolver.

Verifies with unittests.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@195516 91177308-0d34-0410-b5e6-96231b3b80d8
[Gnu] Move code from .h to .cpp.

No change in functionality.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@195582 91177308-0d34-0410-b5e6-96231b3b80d8
[InputGraph][Gnu] Add LinkerScript support.

This adds LinkerScript support by creating a type Script which is of type
FileNode in the InputGraph. Once the LinkerScript Parser converts the
LinkerScript into a sequence of command, the commands are handled by the
equivalent LinkerScript node for the current Flavor/Target. For ELF, a
ELFGNULdScript gets created which converts the commands to ELF nodes and ELF
control nodes(ELFGroup for handling Group nodes).

Since the Inputfile type has to be determined in the Driver, the Driver needs
to determine the complete path of the file that needs to be processed by the
Linker. Due to this, few tests have been removed since the Driver uses paths
that doesnot exist.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@195583 91177308-0d34-0410-b5e6-96231b3b80d8
[InputGraph] Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@195584 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Set ordinals to linker internal atoms.