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 *.
 - 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
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.
Update format
Rename functions

Remname
 - getCUDABlockWidth to getCUDABlockDimX
 - getCUDABlockWidth to getCUDABlockDimY
 - getCUDAGridWidth to getCUDAGridDimX
 - getCUDAGridWidth to getCUDAGridDimY
Add function getCUDABlockDimZ

Get the cuda block size of Z-Dimension.
Set the kernel launching parameters.
Rename ppcg_scop_from_pet_scop to ppcg_scop_from_polly_scop
Erase llvm.ptx.read.tid.z and llvm.ptx.read.ntid.z function declaration
Fix bug in getGridSize function

Avoid use isl object in Kernel directly. Instead, use their copies.