Add rules for building a Clang compilation database.

This "database" is a JSON file that records the commands to be used to
compile each C++ source file used in the plugin.  Several Clang-based
tools use this in order to reprocess the source files in various
interesting ways.  For example, there's a "clang-modernize" tool that
replaces certain old-fashioned C++ constructs with more modern
equivalents.

See <http://clang.llvm.org/docs/JSONCompilationDatabase.html> for more
information about the format of the Clang compilation database.

Automating construction of this JSON "database" means that the
SConstruct file remains canonical.  Changes to SConstruct will be
reflected in the compilation database automatically whenever the
latter is rebuilt.  (It is not built by default, though.)