Checkpointable: Re-use the Saver's SaveableObject infrastructure to create
restore ops, cache them.
The basic infrastructure is usable after this CL in graph and eager, but I still need to make a bunch of objects Checkpointable and make some other usability fixes.
Also sets some of the groundwork for feeding and fetching Python values during save/restore (as in, save has a feed dict now; gathering feeds and placeholders from Checkpointable objects is still to do but should be relatively straightforward).
PiperOrigin-RevId:
186652696