Drop miniupnp dependency
Summary:
Miniupnpc is a C library (somewhat) maintained by a single person which had several vulnerabilities in the past, some of which directly affected our software.
The main purpose of this functionality is to have more (non-data-center) reachable nodes on the network. For a non-technical user running Bitcoin ABC at home, the software would automatically open a port on their router to receive incoming connections. This way, users not able to manually open a port on their router would still provide the network with more resources and enhance its diversity.
However, due to past vulnerabilities (and a worry about unknown future ones) in miniupnpc this feature was disabled by default in core#6795. Having it disabled by default kills (most of?) the purpose of having this functionality in the first place: someone technical enough to understand the -upnp startup option or the "enable UPnP" setting is most likely able to open a port on his box in the first place.
In addition, laanwj implemented PCP with a NAT-PMP fallback. If we ever want to re-enable automatic NAT traversal by default in Bitcoin ABC, this is the best option. The NAT-PMP fallback makes it so compatibility shouldn't be (much of) an issue.
This is a backport of core#31130
Depends on D19778
Ref T3982
Test Plan:
ninja all check-all
guix builds
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Maniphest Tasks: T3982
Differential Revision: https://reviews.bitcoinabc.org/D19762