Add initial support for determining the freshness of a plan

This involves an instrumented GraphStatistics instance that will
record each "statistical queries" and the observed values, the
result of this process called a snapshot.
In addition, we're also introducing a function defined over two
snapshots that determines if they're diverge enough for the
plans having observed one of them to be scheduled for replanning.

Signed-off-by: Pontus Melke <pontus.melke@neotechnology.com>
Merge pull request #3350 from jakub-/plan-freshness

Add initial support for determining the freshness of a plan