Adds HasAllRelevantServices and GetRelevantServices, which check
for NETWORK|WITNESS.
This changes the following:
* Removes nRelevantServices from CConnman, disconnecting it a bit
more from protocol-level logic.
* This has the added benefit of removing nServicesExpected from
CNode - instead letting net_processing's VERSION message
handling simply check HasAllRelevantServices.
* In order to prevent this change from preventing connection to
-connect= nodes which do not have the require fags, -connect
nodes are now given the "addnode" flag. This also allows outbound
connections to !NODE_NETWORK nodes for -connect nodes (which was
already true of addnodes).
* Has the (somewhat unintended) consequence of changing one of the
eviction metrics from the same metric to requiring
HasRelevantServices.
This should make NODE_NETWORK_LIMITED much simpler to implement.
* Rename fAddnode to a more-descriptive "manual_connection"
* Clarify docs for requirements/handling of addnode/connect nodes
* Switch DNSSeed-needed metric to any-automatic-nodes, not services
This is a backport of core PR11456