This starts adding dso_local to clang.
The hope is to eventually have TargetMachine::shouldAssumeDsoLocal go away. My objective for now is to move enough of it to clang to remove the need for the TargetMachine one to handle PIE copy relocations and -fno-plt. With that it should then be easy to implement a -fno-copy-reloc in clang.
This patch just adds the cases where we assume a symbol to be local based on the file being compiled for an executable or a shared library.
Future patches will add the rest of the ELF logic (visibility mostly) and the other file formats.
Handling COFF here is probably trivial. Everything is dso_local unless it's dllimport. Does that matter, or is dso_local intended to be an ELF-specific annotation?