* refactor ConsoleCli to use logging framework
* move things out of ConsoleCli.exec()
* Dont use deprecated method to send req
* move backend out of ConsoleCli.exec()
* Add type annotation
* Remove wrapping Try { } inside of ConsoleCli.exec()
* Remove old debug config flag, use logback to log now
* Add slf4j backend for sttp logging
* Send getversion request server side
* Use V.sttpV
* WIP
* Fix bitcoin-s-cli build
* Restore commonCompilerOpts
* Remove Initialized from NodeStreamMessage, return Initialized from ControlMessageHandler to avoid deadlocking queue with backpressure
* Revert a few things
* scalafmt
* Move initialization cancellable into connection graph so we can cancel it if PeerMessageSender.disconnect() is called
* Create ConnectionGraph.stop()
* fix compile
* Move methods out of PeerManager.onInitialization()
* Add PersistentPeerData, QueriedPeerData
* Segregate PeerData -> {AttemptToConnectPeerData, PersistentPeerData}, handle the cases differently in managePeerAfterInitialization()
* Remove call to sync() in BitcoinSServerMain
* Fix bug where we were attempting to stop peers that had already had their connections fail
* reduce log level for peer discovery failures
* simplify re-query invalid headers test case
* Cleanup test
* Cleanup another test
* Fix re-query invalid headers unti test
* fix unit test
* Empty commit to run CI
* Empty commit to re-run CI
* Empty commit to run CI
* Fix bug where we just ned to awaitAllSync() rather than attempt to sync()
* Use awaitSyncAndIBD, mv awaitSyncAndIBD to NodeTestUtil
* Replace more NodeUnitTest.syncNeutrinoNode() with NodeTestUtil.awaitSyncAndIBD
* Replace more NodeUnitTest.syncNeutrinoNode() with NodeTestUtil.awaitSyncAndIBD
* Remove explicit call to sync()
* Remove extra call to NodeUnitTest.syncNeutrinoNode() in test fixture
* Add NeutrinoNodeNotConnnectedWithBitcoinds
* Don't switch sync peer if its the same peer we are currently syncing from it
* Fix another test
* Remove another sync() call
* Add carve out with MisBehavingPeers for the case where the badPeer was our last peer
* Remove more .sync() calls
* Make PeerMessageSender.reconnect() return a Future that is completed when the connection is established
* Replace hard require() with AsyncUtil.retryUntilSatisfiedF()
* Defensively try to sync everytime a peer is a initialized
* Turn logging OFF
* Fix DataMessagehandlerTest, remove calls to NeutrinoNode.sync() in test fixtures