interfaces: convert `imanifestrevisionstored` to a Protocol class...
interfaces: convert `imanifestrevisionstored` to a Protocol class
This is similar to
1df97507c6b8 for `ipeer`, because the Protocol nature needs
to be explicit on each class, as it isn't inherited.
While we're here, make the methods abstract. There's some background info on
this in
f5d134e57f51 and fd200f5bcaea, but in short, the plan is to explicitly
subclass this instead of relying on structured typing, and explicit inheritence
will see this as a method implementation that returns None at runtime
(regardless of how it is typed), instead of a mandatory function for the
subclass to supply. The `Protocol` class has `abc.ABCMeta` as the metaclass, so
there's nothing more to do with the inheritence list.