Factor out FileBackendEntryInterface
It's currently hard to make debusine-admin vacuum_storage
work with
anything other than the local backend because it works directly with
local paths, possibly for files that no longer exist in the database;
FileBackendInterface
is no help in that case because its interesting
methods all take File
arguments.
Take a step towards fixing this by factoring out a separate
backend-specific FileBackendEntryInterface
; this can be constructed
without a database file (although nothing does so yet), and is hashable,
which will allow reimplementing the code in vacuum_storage
that
compares files in the database with files on disk in a backend-agnostic
way.
There should be no functional change resulting from this commit.
Part of #684 (closed).