add __eq__ to `matplotlib.gridspec.SubplotSpec`

This is to address the issue discovered in
http://stackoverflow.com/questions/20017314/how-are-existing-subplot-axes-retrieved-using-subplot2grid-gridspec-in-matplotli
where multiple calls to

   gs = gridspec.GridSpec(2, 1)
   ax1 = fig.add_subplot(gs[0, 0])
   ax2 = fig.add_subplot(gs[0, 0])

will return a new axes each time (unlike calls integers or tuples).
Added check to __eq__ to short-circuit out if the other object
does not have the necessary attributes.
added __hash__ so that data model will be happy again
improved rgb_to_hsv and hsv_to_rgb in colors.py

functions now take anythang that can be coreced into a (..., 3) shaped ndarray

make documentation clear that the input must be in range [0, 1]

properly deal with integer (binary) input

added round-trip tests
eliminate side effects, fixed output shape
Fix crash when running Gtk3 backend inside of IPython
added `test_gridspec.py` for testing gridspec.

Added test to check if repeated calls to to `gs[n, m]` are
equal.
Merge pull request #2569 from tacaswell/fix_rgb_to_hsv_2566

Explicitly cast the input array to float before doing anything to it
add new test module (test_gridspec) to `default_test_modules` so
that it gets run
Merge pull request #2646 from mdboom/gtk3-crash

Fix Gtk3 crash when running inside of IPython
Merge pull request #2685 from mineo/doc-conf-version-comp

Remove a redundant comparison that raises an exception in Python 3
Merge pull request #2676 from magnunor/fix_typo_vlines_doc

Fix typo in _axes.vlines doc-string
Merge pull request #2597 from tacaswell/add_SubplotSpec__eq__

BUG: Add subplot spec  eq
Use mpl.checkdep_ghostscript function to find ghostscript
Merge pull request #2693 from cgohlke/patch-1

Use mpl.checkdep_ghostscript function to find ghostscript
Merge remote-tracking branch 'upstream/v1.3.x'

Conflicts:
	lib/matplotlib/tests/test_colors.py