Code + file clean up

I went over all the include paths and adjusted them properly with forward declarations where possible and only included what's necessary. In the process of doing so, I've also made the include guards consistent.
Besides that I introduced a more consistent file naming, so we don't have a mixture of lower- and upper-case names.