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.
Add ppcg_scop_from_pet_scop to ppcg.h

Make the function an interface that can be called externally.
Remove static of ppcg_scop_free function

Make it an external interface.
Remove static to make tag_access an external interface
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.
Add IslPTXGenerator

IslPTXGenerator is used to generate llvm IR for both the host and
device.
Add Guard and remove Sched

Guard represents the guard (e.g. if-structure) of the host code.
Since all the calculation of ast_node is done by generate_gpu, Sched is
no longer used. So remove it.
Add struct gen_ext

This struct will be used to transmit all the output of the ppcg generated
isl* structures.
 - context: represents the constraint of the gpu_prog.
 - 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.
Comment/disable options->debug related codes
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).
Comment options->debug
Revert "Comment options->debug"

This reverts commit 36c57b3191f75424f0d76af4fc2f82cefd60482b.
Make set_used_sizes return directly

In ppcg, set_used_sizes is used only when want to dump the tile sizes.
We don't need this feature at the moment.
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