Add print_ast_node_as_c_format function
Add an IslPTXGenerator member to isl NodeBuilder
Trigger the gpgpu codegen in IslCodeGeneration::runOnScop
Fix bug: should collct array and scopstmt info before access
Combine may_write, tagged_may_write with must_write and tagged_must_write

In ppcg, may_write means all the writes (polly may_writes + must_writes).
Add Context member variable to IslPTXGenerator
Add ppcg_print_guarded to get guard ast_node of the host node.

Main changes:
 - Change type of member variable "guard" from isl_set * to isl_ast_node *.
 - Remove Context member variable.
 - Add ppcg_print_guarded function.
 - Call it in generate function.
Comment unused variable declaration
Set the same access ref_id to gpu_stmt and MemoryAccess
Add createForGPGPU function to generate the LLVM IR
Fix bug: move up isl_ast_expr_free(StmtExpr)

Include the free statement for if and if-not GPU_CODEGEN defined
Add #ifdef GPU_CODEGEN guard to changes of NodeBuilder
Fix a typo and update format
Make createForGPGPU a member method os IslNodeBuilder
Add setGPUKernel function to set the current kernel
Add function addKernelSynchronizaton

By using this function we can add synchronization statement to kernel function.
Add createKernelDomain, createKernelCopy and createKernelSync
Get the current llvm::Value of grid ids and block ids
Remove setGPUKernel function.

Add a struct ppcg_kernel * parameter directly to startGeneraion method.
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.