[MRG+1] Multi-output scoring, or 2493 cont'd for real

This time taking into account the refactoring of metrics.py into several files.

This replaces https://github.com/scikit-learn/scikit-learn/pull/3456, which I closed.
I am all for getting rid of  `_average_and_variance` -- I used it and coded the axis keyword into it, because I had the feeling there must have been a good reason why it was introduced.

I love `np.einsum`, and would be happy to use it, but am afraid it heavily impacts readability. As in: I can write an einsum, and when I read it 5 minutes later, I don't understand it anymore. If this is not a problem (tests passing of course ;)), or if I am the only one with this issue, I'll use it wherever useful from now.