sophia: introduce snapshots

Snapshot is a point-in-time consistent view which is
implemented in a persistent manner.

In other words: snapshot is a special kind of a transaction
which is saved during open-shutdown cycle.

Snapshot can be used in any read-only operation.