Added tests and perfected Snapshot's delete() method.
Moved the Snapshot class to its own snapshot module.