fix computation of entry point and main app phdrs when invoking via ldso

entry point was wrong for PIE. e_entry was being treated as an
absolute value, whereas it's actually relative to the load address
(which is zero for non-PIE).

phdr pointer was wrong for non-PIE. e_phoff was being treated as
load-address-relative, whereas it's actually a file offset in the ELF
file. in any case, map_library was already computing it correctly, and
the incorrect code in __dynlink was overwriting it with junk.
make ldd report the libc/dynamic linker itself
add ABI symbols for strtol family functions

these odd names are actually generated by mess in glibc's stdlib.h, so
any glibc-linked program using strtol needs them to run against musl.
report that posix_spawn is supported in unistd.h and sysconf
report presence of ADV and MSG options in unistd.h and sysconf
a few more fixes for unistd/sysconf feature reporting