Faster compilation through dependency reduction
Nlohmann JSON library has been updated and a forward declarations version has been used where possible to reduce dependency on a huge header. Also, use of windows.h has been reduced along with a few more opencv issues.