[MRG] Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
You have assumed `y_true` to already be encoded if `labels` is not provided. So what is wrong in doing this?

    if labels in not None:
        le = LabelEncoder()
        le.fit(labels)
        y_true = le.transform(y_true)