BUG: Stricter checks for gufunc signatures

* Arguments, both input and output, must have at least as many
  dimensions as the corresponding number of core dimensions. In
  previous versions, 1's were prepended to the shape as needed.
* Core dimensions with same labels must have exactly matching
  sizes. In previous versions, core dimensions of size 1 would
  broadcast against other core dimensions with the same label.
* All core dimensions must have their size specified by a passed
  in input or output argument. In previous versions, core
  dimensions in an output argument that were not specified in an
  input argument, and whose size could not be inferred from a
  passed in output argument, would have their size set to 1.
TST: Stricter checks for gufunc signatures

Added euclidean_pdist to umath/umath_tests.c.src.

Modified tests to reflect new, stricter gufunc signature behavior.
DOC: Stricter checks for gufunc signatures

Documented the the new behavior in c-api.generalized-ufuncs.rst.

Added PyUFunc_FromFuncAndDataAndSignature to c-api.ufunc.rst.
Replacing list with generator compherension
Merge pull request #5238 from yuvallanger/patch-1

Replacing list with generator compherension
Merge pull request #5077 from jaimefrio/gufuncs_core_dim_no_broadcast

WIP: gufunc core dimensions should not broadcast
BUG: upcast weights to average result type to avoid inaccuracies

closes gh-5202
Merge pull request #5214 from mkowoods/np.average

Update to average calculation
ENH: support parallel compilation of extensions

Allow extensions using numpy.distutils to compile in parallel.
By passing `--jobs=n` or `-j n` to `setup.py build` the compilation of
extensions is now performed in `n` parallel processes.
Additionally the environment variable NPY_NUM_BUILD_JOBS is used as
the default value, if its unset the default is serial compilation.

The parallelization is limited to within the files of an extension, so
only numpy multiarraymodule really profits but its still a nice
improvement when you have 2-4 cores.
Unfortunately Cython will not profit at all as it tends to build one
module per file.
DOC: update installation instructions
BUG: fix not returning out array from ufuncs with subok=False set

closes gh-5240
Merge pull request #5242 from juliantaylor/fix-ufunc-subok-out

BUG: fix not returning out array from ufuncs with subok=False set
DEP: deprecate pkgload
MAINT: warn instead of raise
Merge pull request #5245 from argriffing/deprecate-pkgload

DEP: deprecate pkgload
Fix issue with fromarrays not correctly determining a format string for unicode data (in the process eliminate some unnecessary cruft)
Merge pull request #5251 from embray/astropy-3052

Issue with fromarrays not using correct format for unicode arrays
Merge pull request #5161 from juliantaylor/parallel-distutils

ENH: support parallel compilation of extensions
BUG: fix header using symbols not available in py3

Inside numpy we handle this via the py3kcompat header which is not
really public api. So for our public headers we need some explicit
checks.
Merge pull request #5257 from juliantaylor/py3-header-fix

BUG: fix header using symbols not available in py3