Copy snapshot.rb

  Set stage for the grand forking for v2 snapshot code
add json_match matcher

So that we can do argument matching in tests
Make SnapshotClient its own class

Renamed the module Snapshot to Snapshot client
Made that a class
Prep for less mixing in and more composition
move SnapshotClient to its own file