Fix edge case for Snapshot #auto_accept and #diff

While working on something in dev, I was able to get my Snapshot data in
a way that was confusing and difficult to work with. Essentially, I had
a snapshot that had its diff set against itself, so it was always
auto-accepting.

To prevent this, I originally wanted to add a custom validation that
would prevent diffed_with_snapshot from being the same as snapshot.
However, that caused problems that I don't feel like jumping into right
now, so I am tackling this from a different angle for now by making
`#auto_accept` and `#diff` smarter.

While I was at it, I added specs for Snapshot#diff? and corrected the
description on an `it` block that was saying the opposite of what it was
doing.

Change-Id: I4c9c34989c67f8d51b44573d9cf05cf99505bbf3