contrib: Parse ELF directly for symbol and security checks
Summary:
Instead of the ever-messier text parsing of the output of the readelf
tool (which is clearly meant for human consumption not to be machine
parseable), parse the ELF binaries directly.
Add a small dependency-less ELF parser specific to the checks.
This is slightly more secure, too, because it removes potential
ambiguity due to misparsing and changes in the output format of elfread. It
also allows for stricter and more specific ELF format checks in the future.
This removes the build-time dependency for readelf.
This is a backport of core#20434
Depends on D13582
Test Plan: gitian builds
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D13585