RFC: Contour plotting from a matrix

This adds the ability to plot contours from a matrix (#293).  Here are some usage examples:
http://nbviewer.ipython.org/gist/darwindarak/1ae4a7a7539695e1dd38/

There are a few parts of the implementation that I'm not too comfortable with, since I don't know how it
would interact with the existing code.  I added a `Matrix` type to the `NumericalOrCategoricalAesthetic` type alias so that the `func` aesthetic could be used to store the matrix.  Would it make more sense if I added a new `z`  aesthetic instead?

**Breaking Change**:

I replaced the `n` field in `ContourStatistic` with `levels` so that it represents either the number of levels or an array of levels.   The default function contour plotting should remain unchanged though.