Added nvptx64 target. Things to do:

1. builtins/target-nvptx64.ll to write, now it is just a copy of target-generic-1.ll
2. add __global__ & __device__ scope
2. make code work for a single cuda thread
3. use tasks to work as a block grid and programIndex as laneIdx, programCount as warpSize
4. ... and more...
working on target-nvptx64... need to add nvptx64
adding text folder to test ptx generator
some changes
merged with master
Merge remote-tracking branch 'upstream/master' into nvptx
 working on nvptx
added blockIndex computations
generating proper tasking function for nvptx
added metadata for tasks with nvptx64 target. not tasks are kernel callable from host
now nvptx allows extern "C" task void, which is emits a kernel that should (?) be callable by driver API from external code
added now NVPTX64 automatically emits unmasked extern "C" for task function with kernel attributes
automatically adds -D__NVPTX__ when nvptx64 target is chosen
Merge branch 'launch3d' into nvptx
now nvptx allows extern "C" task void, which is emits a kernel that should (?) be callable by driver API from external code
using mask i1 for nvptx64
using mask i1 for nvptx64
accepts ptx extension when target is nvptx64
fix llvm 3.2 compilation
 allow easy switch between llvm