This adds experimental support for extracting a Clang module dependency graph
from a compilation database. The output format is experimental and will change.
It is currently a concatenation of JSON outputs for each compilation. Future
patches will change this to deduplicate modules between compilations.
This patch doesn't implement deduplication as the patch was already getting pretty
large. This also doesn't properly support C++20 modules yet.