ENH: use dot (BLAS!) in linalg.norm
ENH: optimize complex vector norm

Also used ravel(order='K') to prevent copies.
Merge pull request #4177 from juliantaylor/objmalloc

ENH: replace a few small allocations with PyObject_Malloc
Merge pull request #3895 from larsmans/norm-dot

ENH: use dot in linalg.norm
ENH: optimize np.where via nditer with external loop

Implementation via PyArray_Choose is very slow, a direct implementation
is 10 times faster.
Optimizing Choose is more complicated due to its higher complexity and
would require specialization for optimal np.where anyway, but it is
something that could be done in future.