Created a plot() method that generates a heatmap from a DissimilarityMatrix 

In relation to  issue #684
I played around with the code a bit and found a few ways to shorten it:

```python
# based on http://stackoverflow.com/q/14391959/3776794
fig, ax = plt.subplots()

# use pcolormesh instead of pcolor for performance
heatmap = ax.pcolormesh(self.data, cmap=cmap)
fig.colorbar(heatmap)

# center labels within each cell
ticks = np.arange(0.5, self.shape[0])
ax.set_xticks(ticks, minor=False)
ax.set_yticks(ticks, minor=False)

# display data as it is stored in the dissimilarity matrix (default is to have y-axis inverted)
ax.invert_yaxis()

ax.set_xticklabels(self.ids, rotation=90, minor=False)
ax.set_yticklabels(self.ids, minor=False)
ax.set_title(title)

return fig
```

Here's what I changed:

- using `pcolormesh` instead of `pcolor` because it is faster and recommended in the matplotlib docs to use this instead of `pcolor`
- using `plt.subplots` as a shortcut instead of `add_subplot`
- added a comment linking to a stackoverflow post that your code seems to have been derived from (it's a good idea to give credit for this sort of thing)
- shortened the `ticks` code to use `np.arange` directly, using `DissimilarityMatrix.shape`
- moved x tick label rotation into `set_xticklabels` call