AC-FOVE: shatter on query

* AbstractMacroOperation: removed
* MacroOperation: removed marginal() method, the result is now
returned directly by run(). This is because I want to avoid
undesirable states when the same macro-operation instance is called
multiple times
* Shatter: run() now returns the result from the execution
* StdMarginal: add(Marginal) now also updates the preservable set
* MacroOperationTest: added a very simple test for ShatterOnQuery
* ShatterOnQuery: a simpler Shatter that breaks the set of parfactors
on the set of random variables from the query.