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. 

The only interesting change: versions is an array of string, because we can have no version (migration oblige), and several version for a given expectedReport (ex: if for that node, the expectedReport didn't change but one other did, leading to a new version)