BUG: fix windows fpu flag check for mixed x87 and sse instructions

windows enables sse intrinsics also on 32 bit by default so we need to
check both the x87 and sse fpu flags.
closes #3680
Merge pull request #3691 from juliantaylor/windows-fpu-fix

BUG: fix windows fpu flag check for mixed x87 and sse instructions
BUG: fix test_rational PyNumberMethods for python3

wrong structure makes VC9 fail to compile under python3
ENH: copy ndarrays if they are encountered in setArrayFromSequence

By avoiding the elementwise copy array([a,b,c]) is now as
fast as vstack([a,b,c])
Merge pull request #3694 from juliantaylor/test-rational-fix

BUG: fix test_rational PyNumberMethods for python3
ENH: Improve accuracy of numpy.gradient at edges

* numpy.gradient has been enhanced to use a second order accurate
  one-sided finite difference stencil at boundary elements of the
  array. Second order accurate central difference are still used for
  the interior elements. The result is a fully second order accurate
  approximation of the gradient over the full domain.

* The one-sided stencil uses 3 elements each with a different weight. A
  forward difference is used for the first element,
     dy/dx ~ -(3.0*y[0] - 4.0*y[1] + y[2]) / (2.0*dx)
  and backwards difference is used for the last element,
     dy/dx ~ (3.0*y[-1] - 4.0*y[-2] + y[-3]) / (2.0*dx)

* Because the datetime64 datatype cannot be multiplied a view is taken
  of datetime64 arrays and cast to int64. The gradient algorithm is
  then applied to the view rather than the input array.

* Previously no dimension checks were performed on the input array. Now
  if the array size along the differentiation axis is less than 2, a
  ValueError is raised which explains that more elements are needed. If
  the size is exactly two the function falls back to using a 2 point
  stencil (the old behaviour). If the size is 3 and above then the
  higher accuracy methods are used.

* A new test has been added which validates the higher accuracy. Old
  tests have been updated to pass. Note, this should be expected
  because the boundary elements now return different (more accurate)
  values.
Merge branch 'gradient'

* gradient:
  ENH: Improve accuracy of numpy.gradient at edges
BUG: Fix UFUNC_CHECK_STATUS to work on both 32 and 64 bit Windows.

Patch is due to Christolph Gohlke.
Merge pull request #3697 from charris/fix-simd-for-windows

BUG: Fix UFUNC_CHECK_STATUS to work on both 32 and 64 bit Windows.
ENH: export py3k.integer_types from numpy.compat
BUG: check axes and window length input for all integer types

On Python 2.7, the long type was excluded.
Merge pull request #3698 from cgohlke/patch-1

BUG: check axes and window length input for all integer types in fft.helper
ENH: add support for Python 3.4 ast.NameConstant
TST: add test for Python 3.4 _ast.NameConstant
Merge pull request #3701 from cgohlke/patch-2

ENH: add support for Python 3.4 ast.NameConstant
BUG: PyArray_SelectkindConverter should be in conversion_utils.h.

Also include numpy/ndarraytypes.h, although this seems not needed in
practice.
Merge pull request #3709 from charris/update-conversion_utils_h

BUG: PyArray_SelectkindConverter should be in conversion_utils.h.
BUG: Fix 0-sized ndindex

The zerosize_ok flag to nditer was missing, so that it did not
allow for 0-sized iteration.

Closes gh-3714
Merge pull request #3696 from juliantaylor/copy-array-create

ENH: copy ndarrays if they are encountered in setArrayFromSequence
Merge pull request #3715 from seberg/ndindex-0size

BUG: Fix 0-sized ndindex