Add two flags for GPGPU codegen(isl)

 - enable-polly-gpgpu-isl: enable polly GPGPU codegen.
 - polly-gpgpu-triple-isl: set the GPU triple string.
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
Fix bug that do not free isl_ast_node correctly
Add getHostGuard function

This function is used to get the guard of generated AST node for host code.
Refactor codes when GPU_CODEGEN is defined
Add an IslPTXGenerator member to isl NodeBuilder
Set PTXGen in NodeBuilder
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.