[ELF] Fix use of LLVM RTTI.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172511 91177308-0d34-0410-b5e6-96231b3b80d8
[Core] Add iterator ranges.

This is based on code by Jeffrey Yasskin. It has been modified to compile
with MSVC and reformated to LLVM style.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172512 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Replace [...] x_{begin,end}() with range<[...]> x().

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