Implements Multiclass hinge loss

Implements multiclass hinge loss. Fixes #3451 
I don't think this should be true. `labels` is optional in other multiclass metrics, and this should provide similar behaviour. In general, we want our metrics to work out-of-the-box, providing sensible defaults to make things easy for users. For example, without a default value this can't be used via a predefined [scoring parameter](http://scikit-learn.org/dev/modules/model_evaluation.html#the-scoring-parameter-defining-model-evaluation-rules)