add merge strings option, this temporarily fixes the problem bringing up helloworld with glibc on x86_64

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@175038 91177308-0d34-0410-b5e6-96231b3b80d8
fix the mergeable string atom, when the target points to a symbol which is at a relative offset from the start of the .rodata section

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@175039 91177308-0d34-0410-b5e6-96231b3b80d8
[Core,Driver,ELF] Differentiate static and dynamic executables.

This also adds a simple relocation change for dynamic executables to
x86-64 ELF.
Kinda sorta write out dynamic stuff.
SharedLibraryAtom symbolness.
[ELF][Writer] Refactor Section to not have atoms. Move atoms into AtomSection.

The purpose of this change is to simplify creating non-atom sections.
Previously _contentType, _sectionKind and _order were used for multiple
purposes and collided in places. This moves all of the Atom specific logic down
into AtomSection and makes Section just have raw Elf_Shdr flags.

Conflicts:
	lib/ReaderWriter/ELF/SectionChunks.h
[Driver][GNULD] Default to dynamic.
[ELF][Writer] Valid dynamic symbol table.
[ELF][Writer] Add dynamic table entries and interp section.
[ELF][Writer] Fix interp phdr.
PHDR.