add listmle_ranker, err_scorer and ndcg_scorer
add two field to choose the ranker and the scorer
add the listmle ranker and adjust the position of listmle and listnet
the fNum is hard code in featuremanager(written by Rishabh), in the situation, we just need <, no more =
add a filed to choose metric
add a constructor to choose the metric
delete the err_scorer and ndcg_scorer method in scorer and move them to two independent subclass
add a constructor to choose the metric
add a method named rank_by_label(used in listmle)
split the main train process into several small part, make it more clearer
finish the listmle, also split the main train process into several small part