Replacing many function definitions with macros

#21: OpenCL kernels support only integer data types. 

Task-Url: http://github.com/meisam/spark/issues/issue/21
Changing ComparisonOperation "eq" to "eql"

This just to make them all three characters long.

#21: OpenCL kernels support only integer data types. 

Task-Url: http://github.com/meisam/spark/issues/issue/21
#21: Fixing copy-paste typo

This fixes #21
#21: OpenCL kernels support only integer data types. 

Task-Url: http://github.com/meisam/spark/issues/issue/21
replacing generic looking functions with macros.

instead of defining three mostly identical functions for each type, a
macro defines all the functions.

genScanFilter_init_
genScanFilter_and_
genScanFilter_or_

#21: OpenCL kernels support only integer data types. 

Task-Url: http://github.com/meisam/spark/issues/issue/21
Deleting GpuPartition#selection

The GpuPartition@filter method replaces GpuPartition#selection

#23: Delete unnecessary methods from GpuPartition 

Task-Url: http://github.com/meisam/spark/issues/issue/23
Deleting GpuPartition#compute

The GpuPartition@filter method replaces GpuFilteredPartition#fill
together replace this method

#23: Delete unnecessary methods from GpuPartition 

Task-Url: http://github.com/meisam/spark/issues/issue/23
deleting GpuPartition#scan method and its unit test case

#23: Delete unnecessary methods from GpuPartition 

Task-Url: http://github.com/meisam/spark/issues/issue/23
Deleting GpuPartition#prefixSum and its unit test cases

#23: Delete unnecessary methods from GpuPartition 

Task-Url: http://github.com/meisam/spark/issues/issue/23
Deleting slow and unnecessary methods from kernel.cl

These methods were used to implement an nonefficient version of
selection. The Yuan's implementation is faster.

#23: Delete unnecessary methods from GpuPartition 

Task-Url: http://github.com/meisam/spark/issues/issue/23
#7: Clean up the println statements from the code 

Task-Url: http://github.com/meisam/spark/issues/issue/7
changing one missed "eq" comparison to "eql" comparison

#14: Refactor GpuFilteredRDD and FilteredChunkItrator 

Task-Url: http://github.com/meisam/spark/issues/issue/14
Making utility functions protcted to make them accessible in subclasses

#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
removing one copy-paste typo
Adding an enum that tracks where column data is store on CPU or GPU
#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
Making createReadBuffer protected to make it accessible in subclasses

#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
Adding a method for copying buffers from device to device
#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
Adding a method to return the data location of a column

Currently, it returns only HOST even though a column may be temporarily
on GPU
#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
Adding macro to declare opencl kernels to set buffers to zero.

#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
declaring count_hash_num opencl kernel to build a hash table on GPU

#24: Port hash join from opencl/cuda to Scala/Java 

Task-Url: http://github.com/meisam/spark/issues/issue/24
Adding the build_hash_table kernel to build the actual hash table on GPU
#24: Port hash join from opencl/cuda to Scala/Java 

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