Add createLocalVariableDefinitions

This function is used to create GPU local variables, i.e. for shared
memory array or private memory definitions.
 + Add static function getLLVMTypeByName - use this function to get
   the llvm::Type of a type string. (This is a ugly and temporary
   solution.)
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.