Consolidate cmake deps
Created by: chuckatkins
This branch essentially consolidates and centralizes all dependency searching via find_package into one place called from the top level. It ensures that find_package is called only once and always the same way, vs before where every localized target needed to call find_pacakge for it's dependencies with no way to ensure that it was called the same way as somewhere else. This led to inconsistencies in how find_package was being called as well as excessive code duplication in the CMake files. This is a fairly substantial change but hopefully, it will simplify users editing the CMake in the future and lead to them being much more maintainable.