[mach-o] Add support for -exported_symbols_list and -keep_private_externs

Both options control the final scope of atoms.

When -exported_symbols_list <file> is used, the file is parsed into one
symbol per line in the file.  Only those symbols will be exported (global)
in the final linked image.

The -keep_private_externs option is only used with -r mode. Normally, -r
mode reduces private extern (scopeLinkageUnit) symbols to non-external. But
add the -keep_private_externs option keeps them private external.

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