Add GPGPU codegen related files from ppcg into polly

Not made any changes at the moment.
Remove and comment unused header includes

pet.h has been included in ppcg.h thus no need to include it once again.
Change header include from <pet.h> to "pet.h"
Comment out main function
Update makefile to include GPGPU codegen files into build

All the added GPGPU codegen files compiled successfully.
Remove use of isl_printer parameter in "generate" function

The original generate function is divided into 2 parts:
 - the new generate function: store the generated ast_node host tree
    in gen and return void.
 - ppcg_print_guard: print the host end codes, e.g. the outermost
   non-parallel loops and if guards, not implemented yet.
 - gen_free: do the cleanup staff for gpu_gen struct.

Two functions call or use "generate" as callback are commented out.
 - generate_wrap
 - generate_gpu

Add new declaration of generate_gpu to gpu.h.
Rename *.c to *.cpp

So that we can use polly's data structure in ppcg. In the next step,
pet_stmt will be replaced with polly::ScopStmt. ppcg_option.c is
deleted because we never call any functions in it.
Do not check format of the GPGPU codegen sources.
Replace use of pet_stmt with polly::ScopStmt
Add an isl_id to MemoryAccess class.

This ref_id is used to represent an id of an access.
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
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.
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.