Merged Ram's commit on removing RDDs.

Conflicts:
	core/src/main/scala/spark/SparkContext.scala
Cleaned up Ram's code. Moved SparkContext.remove to RDD.unpersist.

Also updated unit tests to make sure they are properly testing for
concurrency.
Added SparkContext.cleanup back. Not sure why it was removed before ...
Changed the type of the persistentRdds hashmap back to
TimeStampedHashMap.
Added removeRdd function in BlockManager.
Added the unpersist api to JavaRDD.
Merge pull request #591 from rxin/removerdd

RDD.unpersist: probably the most desired feature of Spark