Replace pet_scop with polly::Scop

Some functions from pet/scop.c file is copied into ppcg.cpp and
modified with input of a polly::Scop pointer.
rename ppcg_scop_from_pet_scop to ppcg_scop_from_polly_scop
Add ppcg_scop_from_polly_scop to ppcg.h

Make the function an interface that can be called externally.
Remove static of some ppcg functions

Make the following functions as an external interface.
 - ppcg_scop_free
 - tag_access
Add ppcg_print_guarded to get guard ast_node of the host node.
Update extract_stmts function to avoid iterating all the pet_stmts

extract_stmts function is used to collect all the gpu_stmts. In ppcg,
every pet_stmt is iterated to look for gpu_stmt and especially those
access pet_expr (statements). In polly, we already have access info in
MemoryAccess. Thus, use MemoryAccess rather than pet_expr to
reimplemented extract_stmts function.
GPURuntime library update

 + Duplicate drvapi_error_string.h from cuda sdk to give much more
   readable error messages.
 + Add allocateMemoryForDevice function.
 - Fix the comments which are used to demonstrate usage of library.
Add IslPTXGenerator

IslPTXGenerator is used to generate llvm IR for both the host and
device.
Add struct gen_ext

This struct will be used to transmit all the output of the ppcg generated
isl* structures.
 - guard: guard of the host code.
 - tree: host code ast_node.
 - prog: gpu_prog struct.
Update generate_gpu to use gen_ext

So we can use gen_ext to output the generated ast_node and gpu_prog.
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 IslNodeBuilder
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