Using uint8_t for raw bytes has a style benefit:
- The signedness is clear from reading the code, as it does not depend on the architecture
Other clean-ups in this pull include:
- Remove unused methods
- Constructor is simplified with Span
- Remove Init() member in favor of C++11 member initialization
Notes:
- the += operatior is not unused in our codebase
- the seeder code needs minor adjustments to use the Span constructor
This is a backport of core#20464