[backport#13695] lint: Add linter for circular dependencies
Summary:
Protects against added circular depencies, makes it explicit in the
code when circular dependencies have been removed.
Modeled after EXPECTED_BOOST_INCLUDES in lint-includes.sh
This is a backport of Core PR13695
Test Plan:
run ./test/lint/lint-circular-dependencies.py see output that points existing unexpected dependencies, expected dependencies that aren't present and unexpected dependencies that are.
Reviewers: #bitcoin_abc, deadalnix
Reviewed By: #bitcoin_abc, deadalnix
Differential Revision: https://reviews.bitcoinabc.org/D5962