Refactor of clusteredheatmap

Here you go! Thanks for being patient with my awful code from before. This is a complete refactoring, so the dendrograms and linkage matrices are getting calculated separately, and `DendrogramGrid` is completely naive to all calculations.

So far this just has basic functionality, I removed some concepts for simplicity:

* `data_na_ok` or masked data, allowing for NAs.
* `{row,col}_labelsize`: fontsize of the row and column labels
* `fig` : user-provided fig. user can provide just `figsize`
* `title`, `title_fontsize`: user can do this on their own using the `DendrogramGrid` instance
* Multiple levels of color labels for rows and columns

If anyone is willing and able to figure out how to make these work elegantly, please do! I couldn't figure it out.

Other things of note:
* Added the feature of user-specified `{x,y}ticklabels` to `heatmap` and `_HeatMapper`.
* Moved all `{col,row}_kws` into explicit keyword arguments, e.g. `{col,row}_linkage` because I felt they were too hidden, and it's not like there's another function you can refer to, to see the possible inputs (like you can with `joint_kws` in `jointgrid`)
* Naming is fluid. I just came up with names that made sense on the spot, and am open to more explicit or understandable naming.
* I haven't completely tested all the combinations yet (!!) so any help here is very much appreciated

Todos (copied from https://github.com/mwaskom/seaborn/pull/325):

- [ ] Tests
- [ ] Tutorial documentation
- [ ] Gallery example(s)
- [ ] Release notes
I've used `skipif` which is super nice, so the test will use the scipy
version if it's not there. But I don't know how to *explicitly* test the
scipy version, even if fastcluster IS there.

---
Olga Botvinnik
PhD Program in Bioinformatics and Systems Biology
Gene Yeo Laboratory <http://yeolab.ucsd.edu/yeolab/Home.html> | Sanford
Consortium for Regenerative Medicine
University of California, San Diego
www <http://olgabotvinnik.com> | blog <http://blog.olgabotvinnik.com/> |
github <http://github.com/olgabot> | twitter <http://twitter.com/olgabot> |
linkedin <http://www.linkedin.com/in/olgabotvinnik>

2014-10-20 18:36 GMT-07:00 Stephan Hoyer <notifications@github.com>:

> In seaborn/matrix.py:
>
> > +            self.Y = self.dendrogram['dcoord']
> > +
> > +    @property
> > +    def calculated_linkage(self):
> > +        try:
> > +            import fastcluster
> > +
> > +            try:
> > +                # Memory-saving version, but only certain linkage methods
> > +                return fastcluster.linkage_vector(self.array,
> > +                                                  method=self.method,
> > +                                                  metric=self.metric)
> > +            except IndexError:
> > +                return fastcluster.linkage(self.array, method=self.method,
> > +                                           metric=self.metric)
> > +        except ImportError:
>
> Michael already is testing different dependencies as shown here:
> https://github.com/mwaskom/seaborn/tree/master/testing
>
> So, you should be sure that at least one set of requirements includes
> fastercluster, and the others do not.
>
> Then, you can make some fastcluster specific tests that are skipped
> otherwise by using the skipif decorator.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/mwaskom/seaborn/pull/332/files#r19125666>.
>