Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
Is just `labels` a better name? In most of the other metric functions, it is just `labels`