BUG: Set __hash__ = None for non-hashable classes.

Because neither poly1d nor the Polynomial package polynomial classes are
immutable, hence not reliably hashable, they should signal that by
setting __hash__ = None. This also fixes the warning

Overriding __eq__ blocks inheritance of __hash__ in 3.x

that is given when the command `python2.7 -3 -c"import numpy"` is run.
BUG: PyArray_PyIntAsIntp had variable size check wrong way around.

This bug resulted in using a long type when a long long was required,
resulting in numerous errors when numpy was compiled as 64 bits on
64 bit windows.
Merge pull request #3678 from charris/fix-wrong-variable-type

BUG: PyArray_PyIntAsIntp had variable size check wrong way around.
Merge pull request #3657 from charris/add-hash-method-to-polynomials

BUG: Set __hash__ = None for non-hashable classes.
ENH: implement pairwise summation

pairwise summation has an average error of O(log(n)) instead of O(n) of
the regular summation.
It is implemented as summing pairs of small blocks of regulary summed
values in order to archive the same performance as the old sum.

An alternative to pairwise summation is kahan summation but in order to
have a low performance penalty one must unroll and vectorize it,
while pairwise summation has the same speed without any vectorization.
The better error bound of O(1) is negligible in many cases.