Filtering against the storage then asking for new revisions only makes
sense if there are revisions not in storage and not ancestors of heads.
If there are none, the current behavior lists all revisions, which is a
whole lot of wasted work.
Fix context for the first revision in a run
See inline comments: in essence, currently the first revision
in a run (incremental or not) will get the null revision as a
parent and no cached directory, which creates the wrong diff for that
revision (i.e. lots of files become added etc).
We fix this problem by doing a full listing of the first revision
in a run.