This pull does three things:
A. It displays the version message before any disconnect logic, for debugging/logging purposes.
B.1. It disconnects when it encounters irrelevant services rather than unexpected services. For example, it might have expected BLOOM services or XTHIN services, but these should not be reasons to disconnect. The criteria for disconnection should be the same as for selection, i.e. nRelevantServices, which this pull now uses. It will still log unexpected services, out of curiosity.
B.2. It makes disconnection conditional on irrelevant services only on OUTBOUND connections. i.e. it restores the functionality to allow clients to connect to us, e.g. SPV nodes.
C. It fixes an ambiguity in the code which led me to thinking that nExpectedServices were the services advertised by the node. They weren't, they were a subset when ANDed with the nRelevantServices, which made the 2nd commit redundant, and took away the ability to log when services are not as expected, which is now possible.