Add new color palettes with interactive palette widgets

This PR has a few things all related to color palettes:

### New palette functions:

- `light_palette()`: complement to `dark_palette` but blend from a very light version of the seed color

```python
sns.palplot(sns.light_palette("seagreen", 10))
```
![light_pal](https://cloud.githubusercontent.com/assets/315810/4204110/99c0c466-3834-11e4-954e-713f4eb91527.png)

- `diverging_palette()`: Given two hues of equal lightness and saturation (chosen in HUSL space), make a  diverging palette between them with either a light or 
a dark midpoint.

```python
sns.palplot(sns.diverging_palette(220, 10, n=9))
```
![diverg_pal](https://cloud.githubusercontent.com/assets/315810/4204130/cdeae960-3834-11e4-8573-074a3de11bd1.png)

### New ways to specify custom sequential palettes

- The `dark_`, `light_`, and `blend_palette` functions have a new `input` parameter that controls how the `color` argument is interpreted: in addition to the range of color specs built into matplotlib, this can also be `hls` or `husl` for coords in those systems or `xkcd` for a named color in the xkcd survey database.

```python
sns.palplot(sns.dark_palette("sea", 8, input="xkcd"))
```
![xkcd_pal](https://cloud.githubusercontent.com/assets/315810/4204151/0a0de1b8-3835-11e4-9fe7-5eb69ca8eaf4.png)

### Interactive widgets to choose palettes

This is the most exciting part of this PR.

This extends the `choose_cubehelix` (now renamed to `choose_cubehelix_palette` for consistency) function that was in 0.4 to cover most of the custom palette functions: `choose_colorbrewer_palette`, `choose_dark_palette`, `choose_light_palette`, and `choose_diverging_palette`:

![screenshot 2014-09-09 08 30 26](https://cloud.githubusercontent.com/assets/315810/4204298/41ed5824-3836-11e4-8d6f-6bd40594fc4f.png)

But the *really* exciting part is that these functions now return either a list of colors or a matplotlib colormap (when `as_cmap` is `True`) so they can actually be used in part of a normal workflow to interactively choose a palette and then pass the returned object to seaborn or matplotlib functions:

![screenshot 2014-09-09 08 29 20](https://cloud.githubusercontent.com/assets/315810/4204277/1d27c6a0-3836-11e4-94e3-34cbbf2e82a3.png)


### To do

- [ ] Tests
- [ ] Documentation
- [ ] Release notes
- [ ] Rename `choose_cubehelix`
This made me laugh.