Improve color package

* [x] implement `get_color_dict()`
* [x] `LinearGradient` to have a default `x` argument (linearly spaced with `np.arange()`)
* [x] `get_colormaps()` to return the list of color maps
* [x] implement `ColorArray._repr_html_()` to display a color array in the IPython notebook
* [ ] implement `nearest` interpolation in NumPy and GLSL
* [ ] implement more colormaps (see [seaborn](https://github.com/mwaskom/seaborn/blob/master/seaborn/palettes.py), [colorbrewer](http://colorbrewer2.org/), [cubehelix](https://github.com/jradavenport/cubehelix))
* [ ] implement routines to generate special colormaps (diverging, husl, hls...)

![image](https://cloud.githubusercontent.com/assets/1942359/5209124/2bac3536-75bb-11e4-92c3-fbcb0354d810.png)

Close #413. Closes #414.
Suggestion: Whereas `Colormap` currently makes some assumptions about how a mapping function should work (via `colors` and  `interpolation`), I would rather see it be a completely arbitrary mapping function, similar to the way the transforms are set up. You could then implement the current `color`/`interpolation` behavior in a subclass. (maybe `Gradient`?) 

As an example of a mapping function that does not fit in so well with the current Colormap implementation, it's common when displaying high dynamic range video to map the pixel depth down to 8-bit using gamma or logarithmic curves. I would want to use something like 
```
image.colormap = GammaColormap(gamma=0.7, min=2**8, max=2**16)
```