Fixed zeroCells optimization

It's only safe to replace a loop with a SetCell if the variable is
decremented in -1 steps - larger steps might make the cell negative, but
a negative cell value does not terminate a loop (only the exact value 0
does).