DOC: Document NPY_RELAXED_STRIDES_CHECKING changes

This includes documentation in the release notes, as well as the
reference guide and smaller corrections. Thanks to Nathaniel
for major rewriting this.
DOC: Add NPY_RELAXED_STRIDES_DOCUMENTATION doc to ndarry.flags
2to3: Apply basestring fixer.

The basestring class is not defined in Python 3 and the fixer replaces
it with str. In order to have a common code base we define basestring in
numpy/compat/py3k.py to be str when the Python version is >= 3,
otherwise basestring and import it where needed.  That works for most
cases, but there are a few files where the version dependent define
needs to be in the file.

Closes #3042.
2to3: Apply renames fixer.

Rename sys.maxint to sys.maxsize when the Python version is >= 3.  This
change was made in Python 3 because all integers are 'long' integers and
their maximum value bears no relationship to the C type that int used to
represent. The new sys.maxsize value is the maximum value of Py_ssize_t.
This change has not led to any reported problems since the numpy 1.5
release.

Closes #3082
2to3: Apply nonzero fixer.

In Python 3 the `__nonzero__` class method is replaced by `__bool__`.
This only affects the MaskedArray class in numpy/oldnumeric/ma.py file
and the simplest solution is to provide both methods. I have my doubts
that the fixed up Python 3 version was correct or even tested, but I
think the current solution should work for as long as oldnumeric stays
in numpy.

Closes #3073.
2to3: Apply zip fixer.

In Python 3 zip returns an iterator instead of a list. Consequently, in
places where an iterator won't do it must be enclosed in list(...).
Lists instead of iterators are also used in array constructors as using
iterators there usually results in an object array containing an
iterator object.

Closes #3094
Merge pull request #3237 from charris/2to3-apply-basestring

2to3: Apply basestring fixer.
Merge pull request #3221 from seberg/document-relaxed-strides

DOC: Document NPY_RELAXED_STRIDES_CHECKING changes
Merge pull request #3238 from charris/2to3-apply-renames-fixer

2to3: Apply renames fixer.
Merge pull request #3241 from charris/2to3-apply-nonzero-fixer

2to3: Apply nonzero fixer.
Merge pull request #3244 from charris/2to3-apply-zip-fixer

2to3: Apply zip fixer.
2to3: Skip isinstance fixer.

The isinstance fixer removes duplicate types in the second argument of
isinstance(). For example, isinstance(x, (int, int)) is converted to
isinstance(x, (int)). This would certainly apply if we let the long
fixer replace long by int, but as is it does nothing.

Duplicate entries are supposedly deprecated in Python 3, I'm not sure
why or how, but it does not seem to be a problem at this point. If it
ever becomes so, we can deal with it then.

Closes #3085
Merge pull request #3245 from charris/2to3-apply-isinstance-fixer

2to3: Skip isinstance fixer.
2to3: Apply urllib fixer.

Various functions have been moved around in the stdlib for Python 3,
this fixes that up so that the code is valid in both Python 2 and
Python 3.

Note: monkey patching the stlib urlopen for testing looks a bit hokey
to me, but I don't see an easier, more reliable way to do the test.

Closes #3090.
Merge pull request #3248 from charris/2to3-apply-urllib-fixer

2to3: Apply urllib fixer.
2to3: Apply next fixer.

The next builtin has been available since Python 2.6 and allows
`it.next()` to be replaced by `next(it)`. In Python 3 the `next` method
is gone entirely, replaced entirely by the `__next__` method. The next
fixer changes all the `it.next()` calls to the new form and renames the
`next` methods to `__next__`. In order to keep  Numpy code backwards
compatible with Python 2, a `next` method was readded to all the Numpy
iterators after the fixer was run so they all contain both methods. The
presence of the appropriate method could have been made version
dependent, but that looked unduly complicated.

Closes #3072.
Merge pull request #3249 from charris/2to3-apply-next-fixer

2to3: Apply next fixer.
MAINT: Style cleanup of numpy/core/src/multiarray/nditer_pywrap.c.

Small indentation cleanup bringing the method list into standard
Numpy form.
Merge pull request #3250 from charris/small-nditer-cleanup

MAINT: Style cleanup of numpy/core/src/multiarray/nditer_pywrap.c.