I'm about to make phase-based shelve not write .hg and .patch
files. Having a class that represents a single shelf, regardless of
which files it uses will help. I'm starting small with just a
.exists() function. I plan to eventually remove the shelvedfile
class once all functionality has been moved to the new class.
By the way, I know that things you shelve are not typically themselves
shelves. I still picked Shelf for the class because it's short
(compared to e.g. ShelvedChange).