Serialization improvements step 6 (all except wallet/gui)
Summary:
The next step of changes from #10785. This: Adds support for enum serialization to CustomUintFormatter, used in CAddress for service flags. Merges BigEndian into CustomUintFormatter, used in CNetAddr for port numbers. Converts everything (except wallet and gui) to use the new serialization framework.
Backport of core PR18317.
The SER_READ and SER_WRITE macros are triggering -Wshadow warnings
all over the place with GCC. Unfortunately I found no solution to
prevent these warnings without a massive renaming of the serialization
functions parameters, making the code difficult to understand. As a
consequence I disabled the warning for GCC.
Test Plan:
ninja all check-all
Reviewers: #bitcoin_abc, majcosta
Reviewed By: #bitcoin_abc, majcosta
Subscribers: majcosta
Differential Revision: https://reviews.bitcoinabc.org/D9169