Ust 5293/dev 5296 add error only report mode

This is a major overhault on the code base. 
Explanation to come about the main logic, but it can be sum-up with:
- nodes get a "configuration id", unique for a set of configuration parameters;
- agent run carry that version id
- we use that to get the actual expected reports for a node, and compare them to what we get

Along the way, I tried to normalize and simplify a lot of datastructures used. For example, now we only have ONE type of StatusReport, not one for Rules and one for Node. 

same here, the iterator may not be iterable twice