Entrance task #1916: factor graph model for multi-label classification example

This my new PR for entrance task #1916. My previous one #2009 was closed due to the polluted commits. I have cleaned my repository commit history and feel more comfortable with git right now. ;)

@hushell The current default setting is using randomly generated dataset. Loading a txt format real dataset was implemented as well. However, I am thinking about issue #1987 and would like to integrate a standard LibSVMFile reader for loading datasets, e.g, http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html
Thus currently, I don't want to convert the dataset into other formats. I didn't PR the dataset. I think it is better to make another PR after solving  #1987.

@vigsterkr @tklein23 I think extending LibSVMFile for reading the mentioned multi-label datasets is possible.