In the pre-POSIX days BSD had strings.h, not string.h. Now strings.h is only used for non-ANSI string functions.
Previously we needed to include headers required by the various sudo*h files. Now those files are more self-sufficient and we should only include headers needed by code in the various .c files.