The previous series added a fsbackend object performing all filesystem access and modifications. This one adds a second "workingbackend" layer to perform all dirstate access and modifications. This task used to be performed by _updatedir() which is being merged into _applydiff() in the process.