First commit of MatrixRDD (experimental)

Class for simplifying matrix operations on RDDs of one-dimensional
numpyarrays
Methods for matrix mulitplication and elementwise operations (plus,
minus, etc.), between two MatrixRDDs or a MatrixRDD and an array
Modeled after spark.util.vector
Added tests for clustering and factorization
Further refactoring of all packages

All functions have a main function which handles argument parsing, as
well as data loading and saving. The function itself takes the data RDD
as input and does the key computations, and returns either RDDs or
numpy arrays.

This is useful because it makes it easier to call the underlying
functions from the shell, as well as making it easier to chain analyses
together (e.g., do regression, then do kmeans clustering on the result).

All tests scripts updated to reflect this refactoring.