see http://ufz.github.io/styleguide/cppguide.xml#Names_and_Order_of_Includes