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
BUG: set filename to None for memmaps of unnamed files

Closes gh-3302
ENH: implement may_share_memory in C

memmap needs to call it in __array_finalize__ to determine if it can
drop the references on copies.
The python version if may_share_memory caused significant slowdowns when
slicing these maps.

closes gh-3364
ENH: improve performance of byte_bounds for continous arrays