Preliminary driver and codegen support for OpenMP offloading.

This patch adds codegen support for target directives and for map and
device clauses. This uses the interface provided by libomptarget.so.
Support in the driver to deal with several LLVM targets (host and OpenMP
targets) is also included.
This patch also moves several codegeneration hooks to the new
CGOpenMPRuntime class and creates a specialization of this class for
NVPTX targets.