These includes are needed. The current code includes them
in .cpp files *before* including these include files, but
that is not very clean, and not useful.
Actually including what a header file needs makes it more
clear what it drags in, it doesn't drag in more then before.
It also allows to include these headers without having to
includes needed for the included header file in a specific
order, in every .cpp file.