added MPLP

Max-product LP relaxation inference for factor graph model.
Unit-test has been added.
Examples will be added soon.
Hey @iglesias, Yes, MDArray is more or less the same as SGNDArray, base_sizes is SGNDArray::dims. I just revised these two classes, they can be combined together. 

@iglesias, so your point is to implement the functions we needed to SGNDArray, right? If so, @Jiaolong, would you mind to send another PR for merging MDArray and SGNDArray? For *= +=, can be specifically for float data type, reference SGVector for hints.