MPLP: marginalizing over arbitrarily many varying neighbors

This allows MPLP to marginalize over arbitrarily many varying neighbors, as long as a factor can score all of them.