Adding an opencl kenrel for building the groupby key

#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Printign a more infomative error message when typeNameString fails 
#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Fixing the total size of cpuOffsets

scanLeft works differently from what I thought.

scanLeft always returns a sequence (or array or iteratior) with one more
elemet than the original array.

#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Using the correcnt length for creating the gpuOffsets buffer

#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Explecitly specifying the type CPU/GPU offset buffers.

Otherwise hostToDeviceCopy assumes the type is the same as GpuPartition
(T in this case, which is usually a tuple)

#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
removing trailing whitespace from macro definitins in kernel.cl
#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Adding constants and types required for groupby operations

#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Adding utility functions required for GroupBy
#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Formatting and cosmetics in the build_groupby_key opencl kernel
#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Adding the count_group_num opencl kernel which is need for GroupBy
#30: port aggregations from opencl/cuda implementation 

Task-Url: http://github.com/meisam/spark/issues/issue/30
Removing the explicit column types from GpuRDD

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuPartitionIterator

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuFiltererPartitionIterator

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuFilteredPartition

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuFilteredRDD

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuSortPartition

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from factory methos in RDD.scala

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing the toGpuFilterRDD factory method. It is not needed anymore

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Removing explicit column types from GpuPartition

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33
Computing the type of Columns based on the TypeTag of the elements in this RDD

Elements in the RDD should be tuples of primitive types or strings.

#33: Use TypeTags to infer type of GpuRDDs instead of passing column types as an argument

Task-Url: http://github.com/meisam/spark/issues/issue/33