MaxProduct Inference for FactorGraphModel

@ppletscher, @iglesias I implemented the max product inference. But the MAPInference cannot be clone(), so a clone unit test is failed. I put a opaque pointer CMAPInferImpl* m_infer_impl as a member of MAPInference, is the failing because of this? 

I'll test the inference more, and adding some unit-tests tomorrow.