I hope this helps in simplifying the include hierarchy and in a better separation of modules. It also helps in finding erroneous conditional includes: petscfix.h, petscconf.h
and petscfptimpl.h are included under some circumstances - but don't exist.