Early matrix/vector support

 a reimplementation of the numpy matrix class, with:
 - slightly different printing
 - convenient element-wise functions
 - overloaded <= for constraint generation

Resolves #8.
It's possible to do element-wise operations with a matrix in a way that's identical to an array, but I still haven't found a way to do matrix multiplication with a array for certain operations (e.g. two vectors multiplied to form a matrix)