2to3: Put `from __future__ import division in every python file.

This should be harmless, as we already are division clean. However,
placement of this import takes some care. In the future a script
can be used to append new features without worry, at least until
such time as it exceeds a single line. Having that ability will
make it easier to deal with absolute imports and printing updates.
MAINT: Make numpy/f2py/crackfortran docstring read better.

The copyright and short summary were moved to the top of the
docstring with the usage description below.
DOC: Remove documentation of non-existing advanced iter NA flags.
BUG: Choose a more unique PY_ARRAY_UNIQUE_SYMBOL in f2py.

In a few exceptional cases where symbols are shared between different
Python modules the use of `PyArray_API` in f2py (fortranobject.h)
conflicts with the regular use of the same symbol in the multiarray
module. Generally the symptom of this conflicting use is a segfault
when importing a f2py'ed module. This occurs because the module init
code somehow overwrites the first element of `PyArray_API` with the
location of `PyArray_API`, causing a crash when
`PyArray_GetNDArrayCVersion` is called.

Closes gh-2521.
BUG: Fix generalized ufunc so repeating labels in one input/output is ok
BUG: Missed case of broadcasting onto core dimensions in gufunc
BUG: Make sure the nditer doesn't complain when 0 broadcast dims
TST: Add test for gufunc scalar case
BUG: Fix bug in gufunc scalar case
TST: Test for a generalized ufunc bug, for zero-sized inputs
BUG: Fix for generalized ufunc zero-sized input case
compile fix on linux/mac
API: Make nditer support ndim == 0 for 0-d iterations.

There are relatively few changes necessare here. However there is a
conceptionally there are no axes for the 0-d case, and no axesdata
needs to be used. This still uses the first axisdata. Which means that
in a few places ndim == 0 is special cased or special cased to act like
ndim == 1.
It would probably be a little cleaner to to use the base pointers directly
in the 0-d case and no axes iteration at all. That would require similar
special cases though.

This also makes oa_ndim == -1 the "correct" way to signal that no op_axes
are given with oa_ndim == 0 being, for the time being, dual use. Either
meaning that nothing may be given, or if something something was given
enforcing a 0-d iteration.

Documented that the dtype transfer functions do not handle the scalar
case unless even shape is set.
ENH: Allow np.nditer to support scalar op_axes

Also uses oa_ndim == -1 to signal no op_axes were given. This is slightly
cleaner inside pywrap itself and is a cleaner signal for the iterator.
TST: Add basic tests for 0-d np.nditer/np.nested_iter support
TST: Add test that einsum multiplies scalars fine
MAINT: Remove np.ndindex 0-d hack.
DOC: Add documentation clarifying the use of oa_ndim
DOC: mention AdvancedNew iterator change in the release notes.
MAINT: Remove 0-d iterator special case from ufunc_object.c