[MRG] 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.
Definitely, but this way it raises an error if something is wrong with the shapes. It is also the only time I use the variable `n_samples` after getting it from `values.shape`. Do you prefer an active check for shape/size violations?