Make derived data types' components private by default

Similarly to what is done for the modules, components of derived data types should be private by default and the ones that are public should be explicitly declared as such. Mixed public/private components were not allowed in Fortran 95, but this is not the case anymore since Fortran 2003.