[MRG] Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
You have checked `if labels is not None` just above this block. So it will never enter this. You can just do

    y_lab = np.unique(y_true)
    if len(y_label) > 2:
        if labels is None:
            if len(pred_decision.shape[1]) > 1 and not np.array_equal(y_label, np.arange(pred_decision.shape[1])):
               raise ...