type inference based for ufuncs based on NumPy meta-data

This is proof-of-concept
python3 fix
small refactor in npyimpl.py
use functions from npy for transcendental math in ufuncs
type inference based for ufuncs based on NumPy meta-data

This is proof-of-concept
python3 fix
small refactor in npyimpl.py
use functions from npy for transcendental math in ufuncs
more refactors
start factoring out ufunc logic to numpy_support.py

So same logic can be shared by npydecl and npyimpl.
factored out code for numpy ufunc loop logic to numpy_support
Merge remote-tracking branch 'origin/numpy-ufuncs-proof-of-concept' into numpy-ufuncs-proof-of-concept

Conflicts:
	numba/targets/npyimpl.py
	numba/typing/npydecl.py
refactor a bit test_ufuncs.py

removal of boilerplate code
applied a bit of DRY on tests_ufuncs
fixed typos in ufunc type-inference

it was not reachable from unittests, so they went silent
Merge remote-tracking branch 'origin/devel' into numpy-ufuncs-proof-of-concept

power uses the same code for type inference as the rest of ufuncs (new type inference code was not present in the source branch)
Conflicts:
	numba/typing/npydecl.py
removed redundant resolve methods in npydecl.py

Binary ufuncs still had their resolve methods explicitly
implemented in numpy.module. The methods for binary ufuncs
are already generated programmatically (like the unary ones)
fix type inference of ufuncs when not passing out array
Merge remote-tracking branch 'origin/devel' into numpy-ufuncs-proof-of-concept
python 3 fix