[SPARK-1065] [PySpark] improve supporting for large broadcast

Passing large object by py4j is very slow (cost much memory), so pass broadcast objects via files (similar to parallelize()).

Add an option to keep object in driver (it's False by default) to save memory in driver.
This is a good idea.  It wouldn't surprise me if the pickle data was highly compressible due to frequently-occuring groups of pickle opcodes, etc.