Commit release snapshot

Release snapshot for open cursors on transaction commit. Get a new snapshot the first time any cursor in a session is used again.