http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Names_and_Order_of_Includes