Add an isl_id to MemoryAccess class.

This ref_id is used to represent an id of an array.
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
Initialize Id in MemoryAccess
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