Shared builds for FreeBSD and mv sections_linux to sections_elf_shared
make sections_elf_shared work with FreeBSD

- use local symbol to get handle of druntime
- relocate elf stringtable entry
- dlopen(RTLD_NOLOAD) increfs on linux, but not on FBSD
- use getprogname instead of program_invocation_name
use specialized _rtls_add_phdr on FBSD

- also add @nogc overload to dl_iterate_phdr and such
fix tests

- C host must explicitly be linked against pthread

- need dummy ref to _d_dso_registry to support weak linkage