Move OpenMP target region ID computation from Driver to Frontend

OpenMP offloading requires the files to exist given that it is going to generate function unique IDs from these files, which is not compatible with clang tooling.
The patch solves the problem by moving the ID generation from the driver to the frontend. The driver still creates an option to pass the input source files full path to the frontend given that the frontend may receive as input a temporary file from the preprocessing phase.
Remove old macros instead of commenting.

Fix trigger on comment of this kind :
/* comment */ => /*/* comment */*/
Now it's just removed.
Export DeclPrinter, StmtPrinter, and TypePrinter
Add support for CW

Add parsing support for concurrent write mode