Add two flags for GPGPU codegen(isl)

 - enable-polly-gpgpu-isl: enable polly GPGPU codegen.
 - polly-gpgpu-triple-isl: set the GPU triple string.
Add dump_ast_node debug option
Add print_ast_node_as_c_format function
Add an IslPTXGenerator member to isl NodeBuilder
Trigger the gpgpu codegen in IslCodeGeneration::runOnScop
[Fix] Collect array and scopstmt info before collecting access
Update may_write and tagged_may_write calculation

In ppcg, may_write means all the writes (polly's may_writes plus
must_writes).
Set same ref_id to gpu_stmt_access and MemoryAccess
Add getHostGuard
Add createForGPGPU function to generate the LLVM IR
Add createKernelDomain, createKernelCopy and createKernelSync
Get the current llvm::Value of grid ids and block ids
Set correct Value for GPU ids before we call createUser

Fill in the IDTOValue with Values of block ids and thread ids and their
corresponding isl_ids.
Add getGridSize function in IslNodeBuilder
Add missing {} to case statement
Use malloced array rather than SmallVector to store isl_ids
Implement polly_stmt_build_ast_exprs
Add GMap member to store all the base addresses in NodeBuilder
Add function getDeviceArrayBaseAddressMap
Modify BlockGenerator to generate access from isl_id_to_ast_expr

Add member variable:
 - bool GPGPU
 - IslExprBuilder *Exprbuilder
 - isl_id_to_ast_expr *Indexes