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.

Prototype code exists here:

- [xapi-project/xcp-idl#37] by @johnelse
- [xapi-project/xen-api#2058] mainly by @johnelse but with 2 extra patches from me
- [Definition of SMAPIv1 vdi_revert](https://github.com/djs55/sm/commit/cbc28755c9c4300ed067abc089081f58f821f504)
- [Hacky implementation for EXT/NFS](https://github.com/djs55/sm/commit/eb31d6205ccd707152a5b59c9a733fd48db5316b)