Fix bug in causal dictionary.

Our definition of dominating writes was incorrect, because it did not consider
transitive happens-before relationships. For example, suppose we have:

  W1: key = "foo", deps = []
  W2: key = "bar", deps = [W1]
  W3: key = "foo", deps = [W2]

W3 dominates W1, even though W1 is not a (direct) dependency of W3.
Merge branch 'master' of github.com:neilconway/garbage-collection