Added unpersist method to Broadcast.
Fix for Broadcast unpersist patch.

Updated comment in MemoryStore.dropFromMemory
Keep TorrentBroadcast piece blocks until unpersist is called
Merge branch 'bc-unpersist-merge' of github.com:ignatich/incubator-spark into cleanup

Conflicts:
	core/src/main/scala/org/apache/spark/broadcast/BroadcastFactory.scala
	core/src/main/scala/org/apache/spark/broadcast/TorrentBroadcast.scala
	core/src/main/scala/org/apache/spark/storage/MemoryStore.scala
Refactor broadcast classes
Add framework for broadcast cleanup

As of this commit, Spark does not clean up broadcast blocks.
This will be done in the next commit.
Clean up broadcast blocks through BlockManager*
Add tests for unpersisting broadcast

There is not currently a way to query the blocks on the executors,
an operation that is deceptively simple to accomplish. This commit
adds this mechanism in order to verify that blocks are in fact
persisted/unpersisted on the executors in the tests.
Test broadcast cleanup in ContextCleanerSuite + remove BoundedHashMap
Merge github.com:apache/spark into cleanup

Conflicts:
	core/src/main/scala/org/apache/spark/SparkContext.scala
Import, comments, and style fixes (minor)
Generalize BroadcastBlockId to remove BroadcastHelperBlockId

Rather than having a special purpose BroadcastHelperBlockId just for TorrentBroadcast,
we now have a single BroadcastBlockId that has a possibly empty field. This simplifies
broadcast clean-up because now we only have to look for one type of block.

This commit also simplifies BlockId JSON de/serialization in general by parsing the
name through regex with apply.
Add functionality to query executors for their local BlockStatuses

Not all blocks are reported to the master. In HttpBroadcast and
TorrentBroadcast, for instance, most blocks are not reported to master.
The lack of a mechanism to get local block statuses on each executor
makes it difficult to test the correctness of un/persisting a broadcast.

This new functionality, though only used for testing at the moment, is
general enough to be used for other things in the future.
Make TimeStampedWeakValueHashMap a wrapper of TimeStampedHashMap

This allows us to get rid of WrappedJavaHashMap without much duplicate code.
Merge github.com:apache/spark into cleanup
Merge github.com:apache/spark into cleanup
Merge branch 'state-cleanup' of github.com:tdas/spark into cleanup
Fix style test fail + remove verbose test message regarding broadcast
Address TD's comments
Correct semantics for TimeStampedWeakValueHashMap + add tests

This largely accounts for the cases when WeakReference becomes no longer strongly
reachable, in which case the map should return None for all get() operations, and
should skip the entry for all listing operations.
Merge pull request #1 from andrewor14/cleanup

I am merging this. I will take one more detailed look in the context of my original changes in the main PR.