Add Saveable base class

This base class will be used for everything that can be saved to the
filesystem, somehow.

This was previously one part of
5790e99b0ad5e373a43497d6afbb9f4344ad8239, but was split out in this
patch.