Improve color package and add colormaps

* [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
* [x] implement `nearest` interpolation in NumPy and GLSL
* [x] refactor in different files
* [x] add an example notebook with many colormap examples

![image](https://cloud.githubusercontent.com/assets/1942359/5209124/2bac3536-75bb-11e4-92c3-fbcb0354d810.png)

Close #413. Closes #414. Closes #646. To be continued in #648.
> However, we could make it so that __setitem__ actually worked -- if the index they use exists, update the color in the mapping, if it doesn't, add an entry to the mapping. WDYT?

Hmm, not sure if that's very useful. We can always implement it later if needed...

> If we go that route, then map should be private as _map

That's an option, @lcampagn WDYT? Having to implement a private `_map()` method in a child class does look a bit weird though.