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.
The GLSL code will basically just operate on scalars or small row vectors, because it is run in parallel on the GPU. In Python, the mapping function must be written to support numpy vectorization, so it is not really possible (or useful) for the two to have exactly the same behavior.

@rossant: whereas it would be nice if all of the colormaps supported this kind of arbitrary array mapping, the actual implementation of that can wait; all I am interested in here is getting the BaseColormap API settled.