Add heatmap function for plotting rectangular data

This builds off of @olgabot's work in #324. I refactored the big function into a Plotter object that is easier to test, added some functionality (including annotating each cell with the numeric value), and fixed a couple of bugs.

Here are the two new examples in the docs:

```python
import seaborn as sns
sns.set()

flights_long = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
flights = flights.reindex(flights_long.iloc[:12].month)

sns.heatmap(flights, annot=True, fmt="d")
```
![heatmap_annotation](https://cloud.githubusercontent.com/assets/315810/4604365/5ba061ce-5197-11e4-9347-468fe9f55336.png)

```python
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(context="paper", font="monospace")

df = sns.load_dataset("brain_networks", header=[0, 1, 2], index_col=0)
corrmat = df.corr()

f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, linewidths=0, square=True)


networks = corrmat.columns.get_level_values("network").astype(int).values

start, end = ax.get_ylim()
rect_kws = dict(facecolor="none", edgecolor=".2",
                linewidth=1.5, capstyle="projecting")

for n in range(1, 18):
    n_nodes = (networks == n).sum()
    rect = plt.Rectangle((start, end), n_nodes, -n_nodes, **rect_kws)                         
    start += n_nodes
    end -= n_nodes
    ax.add_artist(rect)

f.tight_layout()
```
![network_correlations](https://cloud.githubusercontent.com/assets/315810/4604366/718f63fe-5197-11e4-9703-118a6e86e9fe.png)


### Todo
- [x] Tests
- [x] Tutorial documentation
- [x] Gallery example(s)
- [x] Release notes