fix the bug of MHSampler.

@lileicc @cberzan @chrisgioia64 

As discussed in #301 , the current version of MHSampler is incorrect. The reason is that this implementation doesn't remove the unnecessary  variables correctly when they try to build a new instantiation from an old one (some times it will delete less variables, and sometimes it will delete too much variables so that the evidences and queries are not supported). 

In this modified version, this problem was fixed. Though this version has not been tested formally.
The same above. If you want to add the parameter, perhaps we could open a new branch to do that for the whole project.