[SPARK-2024] Add saveAsSequenceFile to PySpark

JIRA issue: https://issues.apache.org/jira/browse/SPARK-2024

This PR is a followup to #455 and adds capabilities for saving PySpark RDDs using SequenceFile or any Hadoop OutputFormats.

* Added RDD methods ```saveAsSequenceFile```, ```saveAsHadoopFile``` and ```saveAsHadoopDataset```, for both old and new MapReduce APIs.

* Default converter for converting common data types to Writables. Users may specify custom converters to convert to desired data types.

* No out-of-box support for reading/writing arrays, since ArrayWritable itself doesn't have a no-arg constructor for creating an empty instance upon reading. Users need to provide ArrayWritable subtypes. Custom converters for converting arrays to suitable ArrayWritable subtypes are also needed when writing. When reading, the default converter will convert any custom ArrayWritable subtypes to ```Object[]``` and they get pickled to Python tuples.

* Added HBase and Cassandra output examples to show how custom output formats and converters can be used.

cc @MLnick @mateiz @ahirreddy @pwendell
@JoshRosen @MLnick the batch size here only affects transient data when writing and the re-serialization shouldn't be done if the data is already in pickle format (batch serialized or not). I'm uploading a patch to that effect. Since the batch size has no effect on the data persisted in files, I'm not exposing it to users. See you have any further comments and if you have a better suggestion for the default size 10, let me know.

@mateiz what you suggested is exposing the batch size for reading. I'll work on that next.