Make AccumulatorParam an abstract base class.
Use generation numbers for fetch failure tracking
Force generation increment after shuffle map stage
Extra debugging from hostLost()
Add tests of various node failure scenarios.
Remove use of abc.ABCMeta due to cloudpickle issue.

cloudpickle runs into issues while pickling subclasses of AccumulatorParam,
which may be related to this Python issue:

    http://bugs.python.org/issue7689

This seems hard to fix and the ABCMeta wasn't necessary, so I removed it.
Remove dead code in test.
Clarify TODO.
Remove more dead code from test.
Added pruntSplits method to RDD.
Added an extra assert for split size check.
Merge remote-tracking branch 'woggling/remove-machines'

Conflicts:
	core/src/main/scala/spark/scheduler/DAGScheduler.scala
Updated assert == to ===.
Created a PruneDependency to properly assign dependency for
SplitsPruningRDD.
Marked prev RDD as transient in SplitsPruningRDD.
Removed pruneSplits method in RDD and renamed SplitsPruningRDD to
PartitionPruningRDD.
Updated PruneDependency to change "split" to "partition".
Merge pull request #409 from rxin/splitpruningrdd

Added pruntSplits method to RDD.
Added a clearDependencies method in PartitionPruningRDD.
Merge pull request #410 from rxin/splitpruningrdd

Added a clearDependencies method in PartitionPruningRDD.