BUG: f2py script shebang may refer to wrong python

The f2py executable has a shebang which uses the default python, rather
than the python it was compiled for.  This causes issues for deployment
of numpy (+f2py) across systems which have different environments.

This fix uses sys.executable to determine the resulting hardcoded
python to use.
Merge pull request #3356 from cpelley/f2py_script

f2py executable script shebang
ENH: vectorize sqrt ufunc using SSE2

specialize the sqrt ufunc for float and double and vectorize it using
SSE2.

improves performance by 4/2 for float/double if one is not memory bound
due to non-cached data.
performance is always better on all tested machines (amd phenom X2,
intel xeon 5xxx/7xxx, core2duo, corei7)

This version will not set errno on invalid input, but numpy only checks
the fpu flags so the behavior is the same.

In principle the compiler could autovectorize it when setting ffast-math
(for no errno) and specializing the loop for the vectorizable strides
and giving it some hints (restrict, __builtin_assume_aligned, etc.),
but its simpler and more reliable to simply vectorize it by hand.
MAINT: use sse header macros for einsum sse activation
Merge branch 'sse2-sqrt' into simd-experiments

Conflicts:
	numpy/core/src/private/lowlevel_strided_loops.h
	numpy/core/src/scalarmathmodule.c.src
	numpy/core/src/umath/loops.c.src
style updates
move minmax test to core