Generalise the notion of "touching" things.

These are those entities (single actions, whole graphs) that would
cause a race if run in parallel, and so must be given an explicit
ordering.
Start construction of hierarchical DAGs corresponding to PseudoC programs