[PECOFF] Refactor IdataPass.

This patch is to basically move the functionality to construct Data Directory
from IdataPass to WriterPECOFF.

Data Directory is a part of the PE/COFF header and contains the addresses of
the import tables.

We used to represent the link from Data Directory to the import tables as
relocation references. The idea behind it is that, because relocation
references are processed by the Writer, we wouldn't have to do anything special
to fill the addresses of the import tables. I thought that the addresses would
be set "automatically".

But it turned out that that design made the pass and the writer rather
complicated. In order to make relocation references between Data Directory to
the import tables, these data structures needed to be represented as Atom.
However, because Data Directory is not a section content but a part of the
PE/COFF header, it did not fit well as an Atom. So we ended up having
complicated code both in IdataPass and the writer.

This patch simplifies it.

One side effect of this patch is that we now have ".idata.a", ".idata.d" and
"idata.t" sections for the import address table, the import directory table,
and the import lookup table. The writer looks for the sections by name to find
the start addresses of the sections. We probably should have a better way to
find a specific atom from the core linking result, but currently using the
section name seems to be the easiest way to do that. The Windows loader do not
care about the import table's section layout.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@197016 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Remove code which is no longer needed because of r197016.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@197018 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Remove enum for Data Directory atom which no longer exist.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@197019 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Writer: Remove rawSize().

Because sections no longer have trailing NULL bytes, size() and rawSize() now
return the same value.

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