Add LDC_extern_weak pragma, fix shared library collision detection.

This works around a linking problem with ld.bfd and --gc-sections
where __bss_start/_end become (ELF) local symbols in the main
executable. For further discussion, see:
 - http://forum.dlang.org/post/ferkvfamznsuhonokhco@forum.dlang.org
 - https://sourceware.org/bugzilla/show_bug.cgi?id=13683
 - https://issues.dlang.org/show_bug.cgi?id=879