In particular lots of stuff that used to be needed with SourceKit that we no longer need to keep around. Identified using Periphery: https://github.com/peripheryapp/periphery
swiftlint
Swift 6 doesn't allow importing executable targets. So we need to move testable logic into a framework.