Fix WATCH for keys that do not yet exist

Previous to this change, every read command for a key that does not exist increments a revision counter. This caused certain transactions fail when they should not, such as this one:

```
WATCH key // rev 0
GET key   // ++rev
MULTI
SET key
EXEC      // check 0 === 1, fail
```

I've added a test that demonstrates the issue, and a simple change that fixes this use case.