C90 compliance, except variadic macros and TODOs

Also removed a lot of dead code from the early days.
Basic detour support
Automate tests
Separate library code, build .a/.so
Clean up code using ElfuScn
Cleaner ElfuPhdr alloc
Extend relocation parser to full 32/64 bits
Add Elf/Phdr/Scn alloc/destroy
LOAD PHDRs at top level, others as children. mPhdrForall().

The reference binaries had to be updated as PHDRs are now reordered.
Merge cloneScn() into reladd.c

It's the only place where we use it, and it's case-specific
Minor cleanup in reladd, 2nd pass
mFromFile: Initialize *me
Use .rela.plt too - need this for x86-64
PHDR: find by addr/offset
Minor fixes to PHDR expansion to lower addresses
reladd: Work more with sh_addr instead of sh_offset
PHDR: Find lowest/highest addr/offs
mLayoutGetSpaceInPhdr: Use mPhdrLoadLowestHighest
Reorder PHDRs according to ELF spec
mLayoutAuto: Do not move LOAD segments, and update PHDR PHDR