Add a function to write out a custom compilation database.

psq_make_compilation_db will write a custom compilation database for a TARGET
to
${CMAKE_CURRENT_BINARY_DIR}/TARGET_compile_commands/compile_commands.json and
set the name of the containing dir in CUSTOM_COMPILATION_DB_RETURN.

Sources need to be pre-split up into C_SOURCES and CXX_SOURCES. This can be
determined by using psq_sort_sources_to_languages.

Pass INTERNAL_INCLUDE_DIRS, EXTERNAL_INCLUDE_DIRS and DEFINES to have those
put on the custom compilation database command line.