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.
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: Apply types fixer.

Python 3 removes the builtin types from the types module. The types
fixer replaces such references with the builtin types where possible
and also takes care of some special cases:

    types.TypeNone           <- type(None)
    types.NotImplementedType <- type(NotImplemented)
    types.EllipsisType       <- type(Ellipsis)

The only two tricky substitutions are

    types.StringType         <- bytes
    types.LongType           <- int

These are fixed up to support both Python 3 and Python 2 code by
importing the long and bytes types from numpy.compat.

Closes #3240.