Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
I can see a problem if

    y = [0, 1, 3]
    labels = [0, 1, 2, 3]

then the current implementation will give a wrong values, since the label 3 is now mapped to the second column.