Fix hash bug - caused failure after 35k stages, sigh
Address review comments - rename toHash to nonNegativeHash
updated content
SPARK-660: Add StorageLevel support in Python

It uses reflection... I am not proud of that fact, but it at least ensures
compatibility (sans refactoring of the StorageLevel stuff).
Clarify YARN example
Fix YARN assembly generation under Maven
Minor YARN build cleanups
Provide docs to describe running on CDH/HDP cluster.

This doc consolidates information relevant to CDH/HDP users in a single place.
Docs describing Spark monitoring and instrumentation
Add notes about starting spark-shell
Easier way to start the master
"launch" scripts is more accurate terminology
Add references to make-distribution.sh
Merge pull request #897 from pwendell/master

Docs describing Spark monitoring and instrumentation
Memoize StorageLevels read from JVM
Fixed the bug that ResultTask was not properly deserializing outputId.
Merge pull request #892 from jey/fix-yarn-assembly

YARN build fixes
CR feedback from Matei
Remove reflection, hard-code StorageLevels

The sc.StorageLevel -> StorageLevel pathway is a bit janky, but otherwise
the shell would have to call a private method of SparkContext. Having
StorageLevel available in sc also doesn't seem like the end of the world.
There may be a better solution, though.

As for creating the StorageLevel object itself, this seems to be the best
way in Python 2 for creating singleton, enum-like objects:
http://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python
Changes based on feedback