Changed cxx flag status message in cmakelists file.
Documented virtual method getAtoms.
Moved implementation file out of external/ and merged it with correct datastructures.cpp
Added lazy atom constraint.

Added datastructure and propagator to handle expressions of the form P <=> Q(c1, ..., cn) lazily through a grounder callback.
Added support for printing out weighted products in ECNF.
Changed code to resolve several gcc/clang warnings and to fix errors related to strictness.
Bugfix: knownbound was handled incorrectly for max. It turned out to be simpler to ditch all that code, adding one known literal with the relevant knownbound during simplification. TODO check whether the original code was more efficient.
Added invariant comment to notifypropagate.
Corrected assert in factory.
Simplified aggregate satisfaction interface.
Corrected aggregate set reduction, not leaving an ugly trailing atom.
Bugfix in recursive aggregate handling + code simplify + reformat

For recursive LB aggregates, the dependency graph was initialized incorrectly, which has been fixed.
Extended human printing of lazy atom.
Bugfix in lazy atom propagator: maxsize was calculated incorrectly.
Bugfix in lazy clause addition.
Bugfix in lazy definition evaluation (rules were forgotten during simplify, even if they were in a loop later on).
Bugfix in scc datastructure in idsolver.
Bugfix to lazy grounding, where resize was assumed to clear the vector.
Adapted propagation mechanism to prevent recursive calls.
Added support for definitions without if part of their completion.