Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
Now since we have agreed on the `label` param, for correctness it should be

    le.fit(labels)
    y_bin = le.fit_transform(y_true)

This accounts for classes that are in `labels` but not in `y_true`