Add Context member variable to IslPTXGenerator
Add missing forward declaration
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.
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.