WATCH + MGET (or any bulk command) prevents connection from clearing transaction state

The problem:

  > conn  = yield conn.watch(key)
  > reply = yield conn.mget([1, 2])
  > conn  = yield conn.multi()
  > yield conn.exec()

This will result in `conn.transactions' negative. The code that clears
the `inTransaction' flag relies that this number is either 0 (zero) or
positive. Thus, afterwards, the connection has been losted, as the
`inTransaction' will never clear up.

This fix relies on the fact that once `MULTI' command has been issued,
all replies are effectively `QUEUED' until redis receives an `EXEC'
command.

  > if self.transactions > 0:
  >     self.transactions -= len(reply)