Add snapshot-revert proposal

This incorporates @johnelse's existing ideas on plumbing `VDI.revert` through the SMAPIv2 and adds plumbing all the way through to the SMAPIv1 for greater effect.