Refactor restore to use same diff algorithm as snapshot
Pass manually specified source package list into snapshot implementation