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)
Small fixes to web UI:

- Use SPARK_PUBLIC_DNS environment variable if set (for EC2)
- Use a non-ephemeral port (3030 instead of 33000) by default
- Updated test to use non-ephemeral port too
Merge pull request #847 from rxin/rdd

Allow subclasses of Product2 in all key-value related classes
Allow some wiggle room in UISuite port test and in EC2 ports
Merge pull request #849 from mateiz/web-fixes

Small fixes to web UI