Adding the skeleton for join.
Cosmetivcs: removing extra semicolon
Adding ClassTag to T param for FilteredChunkIterator & JoinChunkIterator
Changing MAX_SIZE in RDDChunk to capacity
Changing actualSize to size in RDDChunk
Changing type of GpuRDD to extend RDD[T] instea of RDD[RDDChunk[T]]
Changing the type of  fill parameter from Iterator[Product] to Iterator
[T]
Changing the implementation of ChunkIterator

fixes bugs
Implementing RDDChunk.apply()

This change should fix many of the problems that occure when Spark calls
other Itretor methods like toArray, collect, take.
Removing the debigging println statement
Adding a chunk capacity parameter to GpuRDD with a default value of 
1M elements
cleanup and cosmetics
Using the actual size of an RDDChunk to decide if it needs refiling

We were using the capacity of the RDDChunk to decide when a GpuRDD needs
refiniling. The actual number of elements in a RDDChunk can be fewer
than the capacity of the RDDChunk.
Adding test cases for GpuRDD
Cleaning println statmenets