Add flags for GPGPU code generation

 - polly-use-private-memory: use private memory for kernel code
   generation.
 - polly-use-shared-memory: use shared memory for kernel code
   generation.
 - polly-live-range-reordering: allow successive live ranges on the
   same element be reordered.
Update address space of kernel parameters to global memory
Add createKernelCopy function

This function is use to create LLVM IR for copy statement in a kernel
when shared memory or private memory code generation is enabled.