Clean compiler warnings from gcc, clang, and msvc
There are still some in there, but most have been resolved