[Preamble] Allow recursive inclusion of header-guarded mainfile.
This is guaranteed to be a no-op without the preamble, so should be a
no-op with it too.
I can't for the life of me work out how to test this outside clangd.
The original reentrant preamble diagnostic was untested, I added a test
to clangd for that too.
Subscribers: ilya-biryukov, jkorous, arphaman, usaxena95, cfe-commits
Differential Revision: https://reviews.llvm.org/D78366