[SPARK-2521] Broadcast RDD object (instead of sending it along with every task).

This should substantially reduces task size for large jobs (with large closures). It should improve task dispatching and scheduler throughput.

Once this is committed, we can also remove the JobConf broadcast in HadoopRDD.

TODO:
- [ ] Log broadcast size


Will this be compressed?