ENH: interpolate/polyint: allow polyint evaluation on arbitrary shape arrays
ENH: interpolate/polyint: make the polynomial interpolators able to deal with arbitrary-shape y data arrays
TST: interpolate/polyint: add tests for y-shape
BUG: interpolate/polyint: deal with complex-valued arrays
ENH: interpolate/polyint: refactor interpolation axis support in polyint

Support dealing with the interpolation axis using the same mechanism in
all of the interpolators.
MAINT: interpolate/polyint: rename Pchip -> PchipInterpolator
BUG: interpolate/polyint: fix divisions by zero in pchip
STY: interpolate/polyint: make the code a bit more readable
ENH: interpolate/polyint: make the derivative axis be always first in the derivatives() methods
DOC: interpolate: update the polyint documentation to match the implementation vs. axis and shapes
STY: interpolate/polyint: rename InterpolatorBase -> _Interpolator1D
MAINT: in integrate.ode, generate understandable error for f2py issue.

Closes ticket 1187.  Note that this cannot be tested without a warning message
being printed by vodemodule.c, even when redirecting stderr::

    import sys
    from scipy import integrate

    class RedirectStdStreams(object):
        def __init__(self, stdout=None, stderr=None):
            self._stdout = stdout or sys.stdout
            self._stderr = stderr or sys.stderr

        def __enter__(self):
            self.old_stdout, self.old_stderr = sys.stdout, sys.stderr
            self.old_stdout.flush(); self.old_stderr.flush()
            sys.stdout, sys.stderr = self._stdout, self._stderr

        def __exit__(self, exc_type, exc_value, traceback):
            self._stdout.flush(); self._stderr.flush()
            sys.stdout = self.old_stdout

    y0, t0 = [1.0j, 2.0], 0
    def f(t, y, arg1):
        return (1j*arg1*y[0] + y[1], -arg1*y[1]**2)

    def jac(t, y, arg1):
        return [[1j*arg1, 1], [0, -arg1*2*y[1]]]

    with RedirectStdStreams():
        r = integrate.ode(f, jac).set_integrator('zvode', method='bdf', with_jacobian=True)
        r.set_initial_value(y0, t0).set_f_params(2.0).set_jac_params(2.0)
        t1 = 10
        dt = 1
        while r.successful() and r.t < t1:
            r.integrate(r.t+dt)
Merge pull request #221 from pv/ticket/1021

ENH: interpolate: allow polyint evaluation on arbitrary shape arrays

Conflicts:
	scipy/interpolate/polyint.py
	scipy/interpolate/tests/test_polyint.py
replace create_dir with equivalent os.makedirs

also fix race condition in user-only permission setting
BUG: io: fix integer division in dumbdbm_patched
BUG: linalg: fix integer division
BUG: ndimage: fix integer division
TST: sparse.linalg.arpack: fix integer division
TST: fftpack: fix integer division
BUG: signal: fix integer division