Most users of Module::Header already assume its Entry is populated. Enforce this assumption in the type system and handle the only case where this is not the case by wrapping the whole struct in std::optional. Do the same for Module::DirectoryName.
Depends on D151584.
clang-format not found in user’s local PATH; not linting file.