add snapshot rpc and change snapshot idgen

try the new github diff:)

1. add snapshot rpc
2. change the snapshot id generator to address spencer's feedback in last pr.

Instead of this RPC, how about we instead automatically clean up the snapshot when the scan hits the end of the range?