added metis partitioning

We'll need to clean up the test driver / example since a lot of the code is redundant. For instance, something like

solve(problem= ..., partitioner= ..., N= ..., etc.)

Anyway, I added partitioning code using Metis into split.py and added some tests to the comparison driver. I might suggest creating a folder "split" that contains a separate .py file for each of the splitting methods and maybe an interface. If you know of any other good matrix partitioners, do let me know. We can just add them all into a library and run quick comparisons.

Mondriaan is next on my list, except I will probably have to write a Python interface for it (or call it using subprocess).