Initial commit for job killing.
Properly handle job failure when the job gets killed.
Added a submitJob interface that returns a Future of the result.
Allow SparkContext.submitJob to submit a job for only a subset of the partitions.
Added a hack to kill all active jobs in SparkContext.
Fixed a bug for zero partition in JobWaiter.
Made task killing work for standalone cluster schedulers.
More logging changes (task killing for local cluster doesn't work yet).
Added task killing iterator to RDDs that take inputs.
Added comment to InterruptibleIterator.
Wrap around cached data to InterruptibleIterator.
Made output of CoGroup and aggregations interruptible.
Serialize and restore spark.cleaner.ttl to savepoint
Merge remote-tracking branch 'origin' into kill

Conflicts:
	core/src/main/scala/org/apache/spark/scheduler/TaskScheduler.scala
	core/src/main/scala/org/apache/spark/scheduler/cluster/ClusterTaskSetManager.scala
	core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala
Merge branch 'master' into kill

Conflicts:
	core/src/main/scala/org/apache/spark/TaskEndReason.scala
	core/src/main/scala/org/apache/spark/executor/Executor.scala
	core/src/main/scala/org/apache/spark/scheduler/cluster/ClusterTaskSetManager.scala
	core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala
- Created AsyncRDDActions.
- Make FutureJob a Scala Future instead of Java Future.
Added countAsync and various unit tests for async actions.
Renamed StandaloneX to CoarseGrainedX.

The previous names were confusing because the components weren't just
used in Standalone mode -- in fact, the scheduler used for Standalone
mode is called SparkDeploySchedulerBackend. So, the previous names
were misleading.
Added back fully qualified class name
Track and report write throughput for shuffle tasks.