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
added `test_gridspec.py` for testing gridspec.

Added test to check if repeated calls to to `gs[n, m]` are
equal.
add new test module (test_gridspec) to `default_test_modules` so
that it gets run
Merge pull request #2597 from tacaswell/add_SubplotSpec__eq__

BUG: Add subplot spec  eq