[PECOFF] Return an error_code instead of calling report_fatal_error().

For an invalid input we should not call report_fatal_error(), because
when LLD is used as a library, we don't want to kill the whole app
because of a malformed input.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@187673 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Handle .drectve section.

Summary:
The .drectve section contains linker command line options, and the linker is
expected to interpret them as if they were given via the command line. In this
patch, the command line parser in the driver is called from the object file
reader to parse the string.

I think this patch is important, because this is the first step towards mutable
TargetInfo. We had a discussion about that on llvm-commits mailing list before.
I haven't removed "const" from the function signature yet. Instead, I just use
cast to remove "const". This is a temporary aid for an experiment. If we don't
see any issue with this mutable TargetInfo appraoch, I'll change the function
signature, and rename the class LinkerContext from TargetInfo.

Reviewers: kledzik

CC: llvm-commits

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

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