Add zip partitions interface

This pull request adds support for zipping RDDs by partitions. Right now, this supports zipping 2, 3 or 4 RDDs together, and we can extend this if required.

Motivation for this was drawn primarily from MLBase algorithms and through discussions with @etrain and @rxin