[MLLIB] SPARK-2329 Add multi-label evaluation metrics

Implementation of various multi-label classification measures, including: Hamming-loss, strict and default Accuracy, macro-averaged Precision, Recall and F1-measure based on documents and labels, micro-averaged measures: https://issues.apache.org/jira/browse/SPARK-2329

Multi-class measures are currently in the following pull request: https://github.com/apache/spark/pull/1155
`RDD[(Set[Double], Set[Double])]` may be hard for Java users. We can ask users to input `RDD[(Array[Double], Array[Double])]`, requiring that the labels are ordered. It is easier for Java users and faster to compute intersection and other set operations.