ENH: use einsum in linalg.norm

Experience with scikit-learn showed that `einsum` can be a major time and memory saver in norm computations, so here's an attempt to apply the recipe in NumPy as well. Only the easy case, Frobenius/vector-L2 norm is handled using `einsum`, because the other cases turned out to be much trickier than I thought.