buffer: ensure objects are flushed in topological order
This new integration test checks that, when flushing the buffer storage,
the addition functions of the underlying storage backend are called in
topological order (content, directory, revision, release then snapshot).
This reduces the probability of "data consistency" regressions caused by
the use of the buffering storage proxy alone.