Allow subclasses of Product2 in all key-value related classes (ShuffleDependency, PairRDDFunctions, etc).
Added the missing RDD files and cleaned up SparkContext.
Made PairRDDFunctions taking only Tuple2, but made the rest of the shuffle code path working with general Product2.
Added a test for sorting using MutablePair's.
Code review feedback. (added tests for cogroup and substract; added more documentation on MutablePair)
Merge pull request #847 from rxin/rdd

Allow subclasses of Product2 in all key-value related classes