FIX: Make object comparison ufuncs not include identity check

The issue here is that PyObject_RichCompareBool does an identity
check before doing any other checks. This is good, and is the
way for example list comparisons are handled. However in numpy
comparisons are elementwise, so that the identitycheck should
not be expected. The example for this is as follows:
obj_array = np.arange(3)
a = np.array([obj_array, 0], dtype=object)
np.equal(a, a)
If an identity check is done, this returns [True, True]. But
obj_array == obj_array itself cannot be cast to a bool.

While this is slightly slower, not doing the identity check seems
more logical in the light of elementwise operations.

Closes gh-2117.
DEP: Deprecate that comparisons ignore errors.

This means that for example broadcasting errors get raised.

The array_equiv function is changed to explicitely test
if broadcasting is possible. It may be nice to do this
test differently, but I am not sure if that is possible.

Create a FutureWarning for comparisons to None, which
should result in areal elementwise (object) comparisons.

Slightly adepted a wrong test.

Poly changes: Some changes in the polycode was necessary,
the one is probably a bug fix, the other needs to be
thought over, since len check is not perfect maybe, since
it is more liekly to raise raise an error.

Closes gh-3759 and gh-1608
DOC: Add (object) equality changes and error raising to release notes
DEP: Deprecate identity check in comparisons (not just removing)

Instead of just removing it, raise Deprecation/Future warnings
when the comparison object ufunc and the identity check do not
coincide.
MAINT: Comparison deprecation followup fixes

Makes the identity check `a = np.array([np.nan], dtype=object)`
`a == a`, etc. a deprecation/futurewarning instead of just
changing it.
Also fixes some smaller things.
Merge pull request #3514 from seberg/object_comparison

FIX: Make object comparison ufuncs not include identity check
MAINT: Move numpy/core/code_generators/cversions.py to numpy/core.

This is done because it runs as a script, hence without context, and
this causes problems with imports in the code_generators package. This
became apparent when numpy_api.py was changed to import genapi.py from
the same package.
DOC: Document the new location of cversions.py.

The instructions in HOWTO_RELEASE.rst.txt needed to be modified.
MAINT: Update the C-API hash in cversions.txt.

The new annotations caused the api hash to change.
MAINT: Delete code_generators/cversions.py in its old location.
MAINT: Add NPY_1_9_API_VERSION to numpyconfig.h.

Defined to the same value it same value as the NPY_1_8_API_VERSION as
there have been no deprecated macros or functions in the include files.
DOC: Update HOWTO_RELEASE.rst.txt.

Add more detail in the "Check the C API version number" section.