[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
- [ ] Unit tests?


We should look into removing this restriction sometime but it's probably too risky to do in 1.1.