glibc: rely on generic linux syscalls, headers

Also "glibc: initial port of glibc 2.20", but that was broken...

Signed-off-by: Palmer Dabbelt <palmer.dabbelt@eecs.berkeley.edu>
glibc: fix preconfigure sh syntax
glibc: simplify ld.so self-relocation
binutils, glibc: rewrite bfd; employ sane ELF ABI

The new BFD port is primarily based upon TILE-Gx, which is conveniently
simple and vanilla.  We no longer have dynamic REL relocations, and the
GOT no longer needs to be sorted a la MIPS.  So GNU-style shared object
hashes are now supported.

Note that there are probably a few lingering issues.
binutils, glibc: renumber relocs

The ones that are part of the dynamic linking ABI should now be finalized.
binutils, glibc, gcc: support TLS copy relocations

This allows the local-exec model to be used for any non-PIC TLS reference,
even if it cannot be proven at compile time that the access binds locally.
It essentially obviates the need for IE -> LE relaxations.
glibc: improve memset
glibc: fix memcpy link error; improve memcpy
binutils, glibc: PIEs can now link

Binutils needs to allow R_RISCV_TPREL_HI20 relocs in PIE mode, and Scrt1.o
should use R_RISCV_CALL_PLT, not R_RISCV_CALL, to invoke __libc_start_main.