[PECOFF] Create .edata section for the DLL export table.

This is the first patch to emit data for the DLL export table. The DLL export
table is the data used by the Windows loader to find the address of exported
function from DLL. With this patch, LLD is able to emit a valid DLL export
table which the Windows loader can interpret and load.

The data structure of the DLL export table is described in the Microsoft
PE/COFF Specification, section 5.3.

DLL support is not complete yet; the linker needs to emit an import library
for a DLL, otherwise the linker cannot link against the DLL. We also do not
support export-only-by-ordinal yet.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@197212 91177308-0d34-0410-b5e6-96231b3b80d8
[PECOFF] Align .edata fields on natural boundaries.

The only data in .edata whose length varies is the string. This patch moves
all the strings to the end of the section, so that 16-bit or 32-bit integers
are aligned on correct boundaries.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@197213 91177308-0d34-0410-b5e6-96231b3b80d8
Run clang-format on the new files.

I should have run it before submitting but forgot to do that. Doing it now...

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